您的第一个 QtQuick/QML 应用程序#
QML 是一种声明式语言,可以让您比使用传统语言更快地开发应用程序。由于其声明式特性,它非常适合设计应用程序的用户界面。在 QML 中,用户界面被指定为由属性的对象树。在这个教程中,我们将展示如何使用 PySide6 和 QML 创建一个简单的“Hello World”应用程序。
一个 PySide6/QML 应用程序至少由两个不同的文件组成 - 一个包含用户界面 QML 描述的文件,以及一个加载 QML 文件的 Python 文件。为了简化的事情,让我们将这两个文件保存在同一个目录下。
以下是一个简单的名为 view.qml
的 QML 文件。
import QtQuick
Rectangle {
id: main
width: 200
height: 200
color: "green"
Text {
text: "Hello World"
anchors.centerIn: main
}
}
我们首先导入 QtQuick
,这是一个 QML 模块。
对于那些以前使用过 HTML 或 XML 文件的人来说,其余的 QML 代码相当直观。基本上,我们创建了一个大小为 200*200 的绿色矩形,并添加了一个 Text 元素,内容为“Hello World”。代码 anchors.centerIn: main
让文本在具有 id: main
的对象中居中,在这个例子中是 Rectangle。
现在,让我们看看代码在 PySide6 中看起来什么样。让我们称它为 main.py
。
import sys
from PySide6.QtWidgets import QApplication
from PySide6.QtQuick import QQuickView
if __name__ == "__main__":
app = QApplication()
view = QQuickView()
view.setSource("view.qml")
view.show()
sys.exit(app.exec())
如果您已经熟悉 PySide6 并跟随了我们的教程,您已经看过这段代码的大部分。唯一的新奇之处在于您必须 import QtQuick
并将 QQuickView
对象的源设置为您的 QML 文件的 URL。然后,就像调用任何 Qt 小部件一样,您调用 QQuickView.show()
。
注意
如果您在桌面上进行编程,请考虑在显示视图之前添加 view.setResizeMode(QQuickView.SizeRootObjectToView)。
当您运行 main.py
脚本时,您将看到以下应用程序