警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

小部件教程

本教程涵盖了小部件和布局的基本用法,展示了它们如何用于构建GUI应用程序。

介绍

小部件是使用Qt构建的图形用户界面(GUI)应用程序的基本构建块。每个GUI组件(例如按钮、标签、文本编辑器)都是一个widget,它被放置在用户界面窗口的某个位置,或者作为一个独立的窗口显示。每种类型的小部件都由QWidget的子类提供,而QWidget本身是QObject的子类。

QWidget 不是一个抽象类。它可以作为其他小部件的容器,并且可以轻松地子类化以创建新的自定义小部件。QWidget 通常用于创建一个窗口,其他 QWidget 小部件可以放置在其中。

与QObjects一样,QWidget可以通过父对象创建以指示所有权,确保对象在不再使用时被删除。对于小部件,这些父子关系还有额外的含义:每个子部件都显示在其父部件占用的屏幕区域内。这意味着当你删除一个窗口部件时,它所包含的所有子部件也会被删除。

编写主函数

许多与Qt一起提供的GUI示例遵循的模式是拥有一个main.cpp文件,该文件包含初始化应用程序的标准代码,以及包含应用程序逻辑和自定义GUI组件的任意数量的其他源/头文件。

一个典型的 main() 函数在 main.cpp 中看起来像这样:

from PySide6 import QtWidgets
# Include header files for application components.
# ...
if __name__ == "__main__":

    app = QApplication([])
    # Set up and show widgets.
    # ...
    sys.exit(app.exec())

首先,构造一个QApplication对象,可以通过命令行传递的参数进行配置。在小部件创建并显示之后,调用exec()以启动Qt的事件循环。控制权传递给Qt,直到此函数返回。最后,main()返回exec()返回的值。

简单的小部件示例

这些简单的小部件示例都完全写在main()函数中。

  • 创建一个窗口

  • 创建子部件

  • 使用布局

  • 嵌套布局

现实世界中的小部件示例

在这些更高级的示例中,创建小部件和布局的代码存储在其他文件中。例如,主窗口的GUI可以在QMainWindow子类的构造函数中创建。

构建示例

如果您安装了二进制包来获取Qt,或者如果您自己编译了Qt,本教程中描述的示例应该已经构建好并可以运行。如果您希望修改并重新编译它们,请按照以下步骤操作:

  1. 从命令提示符中,进入包含您已修改示例的目录。

  2. 输入 qmake 并按回车键。如果这不起作用,请确保可执行文件在你的路径上,或者输入它的完整位置。

  3. 在Linux/Unix和macOS上,输入make并按回车键;在Windows上使用Visual Studio时,输入nmake并按回车键。

在当前目录中创建了一个可执行文件。在Windows上,此文件可能位于debugrelease子目录中。您可以运行此可执行文件以查看示例代码的运行情况。