QML 和 PyQT:创建 GUI

在本教程中,我们将使用 PyQT4 和用户界面标记语言,这是一种描述图形用户界面和控件的语言。

QML 和 PyQT

用户界面标记图形用户界面和语言代码的摘录如下所示:

 Rectangle {
     id: simplebutton
     color: "grey"
     width: 150; height: 75

本质上,语言告诉界面应该是什么样子。我们将使用的语言称为 QML。

QTCreator

启动一个名为 QTCreator 的程序。本教程将非常图形化,以帮助你完成整个过程。只需在终端中键入 qtcreator 或从菜单列表中启动它。此屏幕应弹出:

qtcreator

创建 GUI

点击新建项目按钮。从下面的菜单中选择 QT Quick Application。最后按右下角的 选择

qtquick

将出现一个新的弹出窗口:

kde 创造

键入名称和有效路径以保存项目。然后按 Next。从菜单列表中选择 QT Quick 2.0。按下一步。按完成。立即出现以 QML 语言定义的用户界面。

PyQt Quick

像所有伟大的程序员一样,我们将以最懒惰的方式解决问题。我们不是手动输入所有 QML 代码,而是按下屏幕左侧的设计按钮。现在应该出现一个拖放屏幕。

draganddrop

我们将图像拖到该区域并选择右侧的源。保存项目。打开终端并找到刚刚创建的 qml 文件。或者,你只需复制编辑框中的代码并将其保存到.qml 文件即可。输入命令:

qmlviewer main.qml

这将显示 qml 文件中定义的窗口,没有任何功能。它只是界面的查看器。然后我们创建一些代码来加载这个 QML 定义:

import sys
 
from PyQt4.QtCore import QDateTime, QObject, QUrl, pyqtSignal
from PyQt4.QtGui import QApplication
from PyQt4.QtDeclarative import QDeclarativeView
 
app = QApplication(sys.argv)
 
# Create the QML user interface.
view = QDeclarativeView()
view.setSource(QUrl('main.qml'))
view.setResizeMode(QDeclarativeView.SizeRootObjectToView)
view.setGeometry(100, 100, 400, 240)
view.show()
 
app.exec_()

最后我们将第一行 main.qml 修改为:

import Qt 4.7

仅仅因为我们的 QtQuick 失踪了。运行

python run.py

现在将显示 QML 定义的用户界面:

QML 和 PyQT

所有代码都只是 PyQT ,因此你可以像上一个教程一样添加代码。这是使用 PyQT 创建图形界面的两种方法。与在先前教程中使用QT创建 GUI 的方法相比,该方法可以更松散地耦合到代码。尽管两者都是有效的方法。