在PyQt5里面玩Android(安卓)的Material Design风格
最近Google发布了Material Design设计语言,用Qt来玩玩桌面应用,Ok!Google It,找到了Github上有iBeliever 发起的QML版Material项目,是在Linux下玩的C++版
不过,QML跨平台跨语言嘛~
1.下载:
https://github.com/papyros/qml-material
https://github.com/papyros/qml-extras
现在早,才Release了一个版本,不过反正我要的功能很少,够我玩了
2.安装:
先安装python-3.4.1和PyQt5-5.4-gpl-Py3.4-Qt5.4.0-x32.exe,64位自己看着办
解压两个源码包,把里面Model文件夹里面的东西复制到PyQt5的QML模块路径里面,我的是在:
C:\Python34\Lib\site-packages\PyQt5\qml\Material
PyQt5的这一点很好,QML模块可以直接安装,扩展库什么的快极了
3.运行:
由于Qt5里面把各个模块都重新整理了一下,模块的删减使得以前Qt4里面的QML QWidget混合窗口代码用不了了,这里重新写了一下,参考了网上的C++的写法,在源码包里面的Demo文件夹里面建立main.py:
#!/usr/bin/env pythonimport sysfrom PyQt5.QtCore import QUrlfrom PyQt5.QtGui import QGuiApplicationfrom PyQt5.QtQuick import QQuickViewfrom PyQt5 import QtCore, QtGui, QtWidgetsfrom PyQt5 import QtQml,QtQuick#app = QGuiApplication(sys.argv)app = QtWidgets.QApplication(sys.argv)engine = QtQml.QQmlApplicationEngine(QUrl('main.qml'))topLevel = QtCore.QObject()topLevel = engine.rootObjects()[0]window = QtQuick.QQuickWindow()window = topLevel#widget = QtWidgets.QWidget()#layout = QtWidgets.QVBoxLayout(widget)#view = QQuickView()#view.setSource(QUrl('main.qml'))#view.show()widget = QtWidgets.QWidget.createWindowContainer(window)widget.show()sys.exit(app.exec_())
代码多余部分自己整理一下吧~快运行( ▼-▼ ),运行之
棒极了!!!!!
等等,不对啊不对啊,啊啊啊啊,作者为何不给窗口的边框来一下啊,〒_〒,自己写多麻烦
。
大概是因为作者在Linux下窗口边框本身就漂亮吧,(♯`∧´),这几天把Linux删除了,过几天装回来再说喽
4.Else:
好像有个这样的错误
file:///C:/Python34/Lib/site-packages/PyQt5/qml/Material/ListItems/Standard.qml:
47:5: QML Label: Binding loop detected for property "width"Google后并未解决,有人解决分享下~
更多相关文章
- Android获取窗口可视区域大小: getWindowVisibleDisplayFrame()
- Android开发——(二)运行你的APP
- android从一个app点击启动或者唤醒另一个app
- Android(安卓)studio中接收蓝牙模块传输回来的数据
- android中button实现页面跳转以及注意问题
- 在Android(安卓)Studio中进行单元测试和UI测试
- 第十四天 乐在其中-Android与远端之GET方式
- android学习笔记--android启动过程之init.rc文件浅析
- 解决错误ERROR: No suitable Java found. In order to properly