小部件教程

介绍

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

QWidget不是一个抽象类。它可以作为其他小部件的容器使用,并且可以 minimal effort派生出自定义新小部件。通常使用QWidget来创建一个窗口,其他QWidget则放置在其中。

QObject类似,QWidget可以使用父对象来创建,以表示所属关系,确保当对象不再使用时被删除。对于小部件,这些父子关系有额外的意义:每个子小部件都显示在其父小部件占领的屏幕区域内。这意味着删除窗口小部件时,其中包含的所有子小部件也将被删除。

编写主函数

许多与Qt一同提供的GUI示例都遵循具有main.cpp文件的模式,该文件包含初始化应用程序的标准代码,以及任何包含应用程序逻辑和自定义GUI组件的源/头文件。

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

#include <QtWidgets>

// Include header files for application components.
// ...

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // Set up and show widgets.
    // ...

    return app.exec();
}

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

简单的 Widget 示例

这些简单的 Widget 示例完全在 main() 函数中编写。

现实世界的小部件示例

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

构建示例

如果您使用二进制包安装了 Qt,或者您自己编译了 Qt,则本教程中描述的示例应该已经编译并准备好运行。如果您想修改并重新编译它们,请按照以下步骤操作:

  1. 在命令提示符下,进入已修改示例所在的目录。
  2. 输入 qmake 并按 Enter。如果不起作用,请确保可执行文件在您的路径中,或者输入其完整路径。
  3. 在 Linux/Unix 和 macOS 上,输入 make 并按 Enter;在带 Visual Studio 的 Windows 上,输入 nmake 并按 Enter

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

© 2024 Qt 公司有限公司。本指南中包含的贡献文档的版权归其各自所有者。本指南提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款提供的。Qt 以及相应的标志是芬兰及/或世界其他地区的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。