文件类型¶
在开发Qt for Python应用程序时,您会遇到许多不同的文件类型,如ui、qrc、qml、pyproject等。这里您可以找到对每种文件类型的简单解释。
Python 文件 .py
¶
Python 文件是你在开发 Qt for Python 项目时主要处理的格式。
需要注意的是,你可以仅使用Python文件编写应用程序,而不需要.ui
、.qrc
或.qml
文件,然而使用其他格式将简化某些流程,并为你的应用程序启用新功能。
class MyWidget(QWidget):
def __init__(self):
QWidget.__init__(self)
self.hello = ["Hallo Welt", "你好,世界", "Hei maailma",
"Hola Mundo", "Привет мир"]
self.button = QPushButton("Click me!")
self.text = QLabel("Hello World")
self.text.setAlignment(Qt.AlignCenter)
# ...
用户界面定义文件 .ui
¶
当使用Qt Widgets Designer时,您可以使用WYSIWYG表单编辑器创建用户界面,此界面使用XML表示为小部件树。以下是.ui
文件开头的摘录:
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
pyside6-uic 工具从这些 .ui 文件生成 Python 代码, 你可以从主文件中导入这些代码,因此不需要 在你的部署应用程序中包含 .ui 文件。
更多详情,请参见 using_ui_files。
资源集合文件 .qrc
¶
将与您的应用程序一起使用的二进制文件列表。 作为一个基于XML的文件,其结构如下所示:
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>images/quit.png</file>
<file>font/myfont.ttf</file>
</qresource>
</RCC>
pyside6-rcc 工具从这些 .qrc 文件生成 Python 代码, 因此您不需要在部署的应用程序中包含列出的文件。
更多详情,请参见 using_qrc_files。
Qt 建模语言文件 .qml
¶
图形化的QML应用程序与Qt Widgets应用程序无关,这就是为什么QML项目的通常设置是一个加载QML文件的Python文件,并且可以选择性地将Python中定义的元素暴露给QML使用。
你可以手动编写.qml
文件,但也可以使用嵌入在Qt Creator中的QML Designer等工具。此外,还有像Qt Design Studio这样的商业工具,允许你从其他设计应用程序加载设计。
在这里你可以找到一个.qml
文件的示例。
代码将显示一个浅灰色的矩形,上面有“Hello World!”的消息。
import QtQuick 2.0
Rectangle {
id: page
width: 320;
height: 480
color: "lightgray"
Text {
id: helloText
text: "Hello world!"
y: 30
anchors.horizontalCenter: page.horizontalCenter
font.pointSize: 24;
font.bold: true
}
}
Qt Creator Python 项目文件 .pyproject
¶
为了让Qt Creator加载和处理基于Python的项目,需要一个特殊的文件,因为基于C++的项目可以从.qmake
或CMakeLists.txt
文件中处理,而这些文件不用于基于Python的项目。
旧版本的Qt Creator提供了一个简单的格式,使用.pyqtc
扩展名,这些是每行一个文件的纯文本文件:
library/server.py
library/client.py
logger.py
...
这种格式存在一些限制,并且可能会添加一些不被支持的进一步选项,这是创建.pyproject
文件的动机,这是一个基于JSON的文件,可以添加更多选项。以下是此类文件的示例:
{
"files": ["library/server.py", "library/client.py", "logger.py", ...]
}