文件类型#
在开发Python版的Qt应用程序时,您会遇到许多不同的文件类型,如ui、qrc、qml、pyproject等。在这里,您可以找到每个类型的一个简单解释。
Python文件 .py
#
Python文件是您在开发Python版的Qt项目时将主要使用的格式。
需要注意的是,您可以使用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
时,您可以使用Qt Widgets和所见即所得(WYSIWYG)表单编辑器创建用户界面,该界面由XML表示的控件树。
<?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文件。
有关详细信息,请参阅
从Designer或QtCreator使用QUiLoader和pyside6-uic使用.ui文件。
资源收藏文件 .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代码,因此不需要在您的部署应用程序中包含列出的文件。
有关详细信息,请参阅
使用.qrc文件(pyside6-rcc)。
Qt建模语言文件 .qml
#
图形QML应用程序与Qt Widgets应用程序无关,这就是为什么QML项目的常规设置是一个加载QML文件的Python文件,以及(可选的)暴露给QML以使用的定义在Python中的元素。
您可以手动编写.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
#
由于基于 C++ 的项目可以通过 .qmake
或 CMakeLists.txt
文件进行处理,而这些文件不适用于基于 Python 的项目,因此 Qt Creator 需要一个特殊的文件来加载和处理基于 Python 的项目。
旧版本的 Qt Creator 提供了具有 .pyqtc
扩展名的简单格式,这些是纯文本文件,每行包含一个文件。
library/server.py
library/client.py
logger.py
...
此格式的限制以及可能添加但不会得到支持的选项,是创建 .pyproject
文件的动力,该文件是一个基于 JSON 的文件,可以添加更多选项。以下是一个此类文件的示例
{
"files": ["library/server.py", "library/client.py", "logger.py", ...]
}