文件类型

在开发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++的项目可以从.qmakeCMakeLists.txt文件中处理,而这些文件不用于基于Python的项目。

旧版本的Qt Creator提供了一个简单的格式,使用.pyqtc扩展名,这些是每行一个文件的纯文本文件:

library/server.py
library/client.py
logger.py
...

这种格式存在一些限制,并且可能会添加一些不被支持的进一步选项,这是创建.pyproject文件的动机,这是一个基于JSON的文件,可以添加更多选项。以下是此类文件的示例:

{
    "files": ["library/server.py", "library/client.py", "logger.py", ...]
}