最近Google发布了Material Design设计语言,用Qt来玩玩桌面应用,Ok!Google It,找到了Github上有iBeliever 发起的QML版Material项目,是在Linux下玩的C++版python
不过,QML跨平台跨语言嘛~git
如今早,才Release了一个版本,不过反正我要的功能不多,够我玩了oop
先安装python-3.4.1和PyQt5-5.4-gpl-Py3.4-Qt5.4.0-x32.exe,64位本身看着办ui
解压两个源码包,把里面Model文件夹里面的东西复制到PyQt5的QML模块路径里面,个人是在:spa
C:\Python34\Lib\site-packages\PyQt5\qml\Material
设计
PyQt5的这一点很好,QML模块能够直接安装,扩展库什么的快极了code
因为Qt5里面把各个模块都从新整理了一下,模块的删减使得之前Qt4里面的QML QWidget混合窗口代码用不了了,这里从新写了一下,参考了网上的C++的写法,在源码包里面的Demo文件夹里面创建main.py:get
#!/usr/bin/env python import sys from PyQt5.QtCore import QUrl from PyQt5.QtGui import QGuiApplication from PyQt5.QtQuick import QQuickView from PyQt5 import QtCore, QtGui, QtWidgets from 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删除了,过几天装回来再说喽
好像有个这样的错误
file:///C:/Python34/Lib/site-packages/PyQt5/qml/Material/ListItems/Standard.qml:
47:5: QML Label: Binding loop detected for property "width"
Google后并未解决,有人解决分享下~