在PyQt5裏面玩Android 的Material Design風格

最近Google發佈了Material Design設計語言,用Qt來玩玩桌面應用,Ok!Google It,找到了Github上有iBeliever 發起的QML版Material項目,是在Linux下玩的C++版python

不過,QML跨平臺跨語言嘛~git


1.下載:

https://github.com/papyros/qml-materialgithub

https://github.com/papyros/qml-extrasapp

如今早,才Release了一個版本,不過反正我要的功能不多,夠我玩了oop


2.安裝:

先安裝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


3.運行:

因爲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刪除了,過幾天裝回來再說嘍

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

相關文章
相關標籤/搜索