Widget 和布局

小部件

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

A parent widget containing various child widgets.

The QWidget 类提供渲染到屏幕及处理用户输入事件的基本功能。Qt 提供的所有 UI 元素是子类化的 QWidget ,或被用于连接 QWidget 子类。创建自定义 Widget 的完成,是通过子类化 QWidget 或适当子类并重实现虚拟事件处理程序。

布局

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

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

Widget Styles

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

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

Widget 类

下列章节列表 Widget 类。见 Qt Widget 图库 举的一些范例。

Basic Widgets

这些基本 Widget (控件),如按钮 组合框及滚动条,被设计为可直接使用。

QCheckBox 带文本标签的复选框
QComboBox 组合按钮和弹出列表
QCommandLinkButton Vista 风格的命令链接按钮
QDateEdit 用于编辑日期的 Widget (基于 QDateTimeEdit 小部件)
QDateTimeEdit 用于编辑日期和时间的 Widget
QDial 四舍五入范围控制 (像速度计或电位计)
QDoubleSpinBox 采用双精度的自旋框 Widget
QFocusFrame 聚焦框可以在 Widget 的正常可描绘区域之外
QFontComboBox 让用户选择字体系列的组合框
QLCDNumber 显示带有类似 LCD 数字的数字
QLabel 显示文本或图像
QLineEdit 一行文本编辑器
QMenu 用于菜单栏、上下文菜单及其它弹出菜单的菜单 Widget
QProgressBar 水平 (或垂直) 进度条
QPushButton 命令按钮
QRadioButton 带文本标签的单选按钮
QScrollArea 把视图卷动到另一 Widget
QScrollBar 垂直 (或水平) 滚动条
QSizeGrip 用于重置顶层窗口大小的重置大小手柄
QSlider 垂直 (或水平) 滑块
QSpinBox 自旋框 Widget
QTabBar 选项卡栏 (如:用于选项卡式对话框)
QTabWidget 选项卡式 Widget 的堆栈
QTimeEdit 用于编辑时间的 Widget (基于 QDateTimeEdit 小部件)
QToolBox 选项卡化 Widget 项的列
QToolButton 命令 (或选项) 的快速访问按钮,通常用于 QToolBar
QWidget 所有用户界面对象的基类

Advanced Widgets

高级 GUI Widget (如:选项卡小部件和进度条),提供更复杂的用户界面控件。

Phonon::VideoWidget Widget that is used to display video
QCalendarWidget 允许用户选择日期,基于月份的日历 Widget
QColumnView 列视图的模型/视图实现
QDataWidgetMapper 在数据模型区间与 Widget 之间的映射
QDesktopWidget 对多头系统屏幕信息的访问
QListView 在模型中的列表或图标视图
QMacCocoaViewContainer Widget for Mac OS X that can be used to wrap arbitrary Cocoa views (i.e., NSView subclasses) and insert them into Qt hierarchies
QMacNativeWidget Widget for Mac OS X that provides a way to put Qt widgets into Carbon or Cocoa hierarchies depending on how Qt was configured
QTableView 表格视图的默认模型/视图实现
QTreeView 树视图的默认模型/视图实现
QUndoView 显示 QUndoStack 的内容
QWSEmbedWidget Enables embedded top-level widgets in Qt for Embedded Linux
QWebView 用于查看和编辑 Web 文档的 Widget
QX11EmbedContainer XEmbed container widget
QX11EmbedWidget XEmbed client widget

Organizer Widgets

像分割器、选项卡栏、按钮组等类用于组织和分组 GUI 图元成更复杂应用程序和对话框。

QButtonGroup 用于组织按钮 Widget 组的容器
QGroupBox 带标题的分组框框架
QSplitter 实现分割器 Widget
QSplitterHandle Handle functionality of the splitter
QStackedWidget 每次仅一 Widget 可见的 Widget 堆栈
QTabWidget 选项卡式 Widget 的堆栈

抽象 Widget 类

抽象 Widget 类是基类。它们不能作为独立类使用,但提供功能当子类化它们时。

QAbstractButton 按钮 Widget 抽象基类,为按钮提供公共功能
QAbstractScrollArea 带按需滚动条的卷动区域
QAbstractSlider 在范围内的整数值
QAbstractSpinBox Spinbox 和显示值的行编辑
QDialog 对话框窗口的基类
QFrame 可以拥有框架的 Widget 基类