警告

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

小部件教程#

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

简介#

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

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

与QObject一样,QWidget可以与父对象一起创建以表示所有权,这样可以确保当对象不再使用时删除它们。对于小部件,这些父子关系具有额外的意义:每个子小部件都 display 在其父小部件占据的屏幕区域内。这意味着当您删除一个窗口小部件时,它包含的所有子小部件也将被删除。

编写主函数#

Qt附带的大多数GUI示例都遵循具有main.cpp文件的模式,该文件包含初始化应用程序的标准代码,以及包含应用程序逻辑和自定义GUI组件的任意数量的源/头文件。

main.cpp中的典型main()函数如下所示

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 并按回车;在带有Visual Studio的Windows上,输入 nmake 并按回车。

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