Qt Widgets

The Qt Widgets 模块 提供了一套创建经典桌面风格用户界面的 UI 元素。请参阅 用户界面 概述,了解使用小部件的更多信息。

小部件

Widgets 是在 Qt 中创建用户界面的首要元素。 小部件 可以显示数据和状态信息,接收用户输入,及为应被分组在一起的其它 Widget 提供容器。未嵌入到父级 Widget 中的 Widget,称为 window .

A parent widget containing various child widgets.

The QWidget 类提供渲染到屏幕和处理用户输入事件的基本能力。Qt 提供的所有 UI 元素是子类化的 QWidget 或用于连接 QWidget 子类。要创建自定义小部件,子类 QWidget 或合适子类并重实现虚拟事件处理程序。

样式

样式 代表 Widget 绘制,并封装 GUI 的外观和感觉。Qt 的内置 Widget 使用 QStyle 类来履行其几乎所有绘制,确保看起来准确像等效本机 Widget。

Qt 样式表 是允许定制 Widget 外观的强大机制,除了已经可能通过子类化 QStyle .

布局

布局 是在容器中自动排列子级 Widget 的优雅 灵活方式。每个 Widget 向布局报告其尺寸要求透过 sizeHint and sizePolicy 特性,且布局会相应地分配可用空间。

Qt Designer 是交互创建和在布局中排列 Widget 的强大工具。

模型/视图类

The 模型/视图 体系结构提供向用户呈现数据的方式的管理类。使用列表和表格驱动数据的应用程序,被结构化为使用模型、视图及委托分离数据和视图。

图形视图

The 图形视图框架 用于管理和与大量定制 2D 图形项并与之交互,用于可视化这些项的视图 Widget (支持缩放和旋转)。

使用模块

使用 Qt 模块的 C++ API 要求直接 (或透过其它依赖) 链接到模块库。几个构建工具对此有专用支持,包括 CMake and qmake .

构建采用 CMake

使用 find_package() 命令定位所需模块组件在 Qt6 包:

find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
					

更多细节,见 构建采用 CMake 概述。

采用 qmake 构建

要配置采用 qmake 构建模块,添加模块作为值为 QT 变量在工程的 .pro 文件:

QT += widgets
					

文章和指南

范例

API 参考

模块演变

Qt Widgets 的变化 列出了 Qt 的 Qt 6 系列在模块 API 和功能上所做出的重要改变。

许可

Qt Widget 模块在商业许可下是可用的来自 Qt 公司 。此外,它在自由软件许可下也是可用的: GNU LGPL (次一般公共许可) 第 3 版 ,或 GNU GPL (一般公共许可) 第 2 版 。见 Qt 许可 进一步了解细节。