QML是一种声明式语言,可以让你开发的程序比传统语言开发的程序运行速度更快。因为它是声明式的,所以适合用来设计UI。在QML中,一个用户界面是用一个由对象及其属性组成的树来描述的。在本节教程中,我们将展示如何用PySide2和QML创建一个简单的“Hello World”程序。
一个PySide2/QML程序至少由两个文件组成:一个用QML描述用户界面的文件;一个加载QML文件的Python文件。为了方便起见,我们把两个文件保存在同一目录下。
下面是一个简单的QML文件,我们命名为view.qml:
import QtQuick 2.0
Rectangle {
width: 200
height: 200
color: "green"
Text {
text: "Hello World"
anchors.centerIn: parent
}
}
首先引用QtQuick 2.0模块,它就是关于QML的模块。
剩下的QML代码对于懂HTML或XML的朋友来说非常简单。首先,我们创建一个绿色的200*200的正方形,然后加入一个“Hello World”文本对象。代码 anchors.centerIn: parent 让文本在它的父对象(在这里就是那个正方形)中居中显示。
然后我们看看PySide2的代码长啥样。文件命名为main.py:
from PySide2.QtWidgets import QApplication
from PySide2.QtQuick import QQuickView
from PySide2.QtCore import QUrl
app = QApplication([])
view = QQuickView()
url = QUrl("view.qml")
view.setSource(url)
view.show()
app.exec_()
如果你对PySide2比较熟悉,这段代码应该不难。唯一需要注意的是,要引用QtQuick模块,并且将QQuickView对象的源设置为你的QML文件的路径,然后调用QQuickView.show()。