最近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後並未解決,有人解決分享下~