文件类型#

在开发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++ 的项目可以通过 .qmakeCMakeLists.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", ...]
}