QT是专门用来开发用户界面的程序,小部件(Widgets)是构成用户界面的基本元素。QT6提供了一个丰富的库,用于创建桌面、移动和嵌入式应用程序的用户界面。
小部件是图形用户界面(GUI)编程中的一个重要概念。它是构成用户界面的基本元素,可以是按钮、文本框、标签、滑动条等。在QT中,小部件是一个拥有绘制和事件处理功能的对象。通过组合和使用这些小部件,开发者可以创建出功能丰富、界面友好的应用程序。
那么,QT有哪些小部件?看看下面的列表:将近200个,你说学起来累不累?
下面的表,来自网站Qt 小部件 C++ 类 |Qt小部件 5.15.16,这个网页很不错,每一个小标签都有链接,有详细的介绍,供学习之用。
将详细介绍小部件的概念和分类。
Widgets的概念
小部件是图形用户界面(GUI)编程中的一个重要概念。它是构成用户界面的基本元素,可以是按钮、文本框、标签、滑动条等。在QT中,小部件是一个拥有绘制和事件处理功能的对象。通过组合和使用这些小部件,开发者可以创建出功能丰富、界面友好的应用程序。
Widgets的分类
QT6中的小部件可以分为以下几类,
2.1 基础小部件
基础小部件是构成用户界面的最基本元素,包括,
按钮(QPushButton),用于触发操作。
文本框(QLineEdit),用于输入和编辑单行文本。
标签(QLabel),用于显示文本或图像。
滑块(QSlider),用于选择一个数值,通常与一个范围值相关。
复选框(QCheckBox),用于选择多个选项。
单选按钮(QRadioButton),用于在多个选项中选择一个。
2.2 布局小部件
布局小部件用于管理其他小部件的布局,包括,
容器小部件,如QWidget、QFrame等,可以包含其他小部件。
布局管理器,如QHBoxLayout、QVBoxLayout、QGridLayout等,用于控制小部件的布局。
2.3 高级小部件
高级小部件提供了更复杂的功能,包括,
对话框(QDialog),用于与用户交互,通常用于请求特定信息或确认操作。
菜单(QMenu),用于显示一个或多个菜单项,通常与菜单栏或动作相关。
工具栏(QToolBar),用于显示一组按钮或菜单项,通常用于快速访问常用功能。
状态栏(QStatusBar),用于显示应用程序的状态信息。
2.4 定制小部件
定制小部件是基于QT的绘图引擎(QPainter)创建的自定义小部件,可以实现复杂的用户界面效果,如,
绘图小部件(QWidget),继承自QWidget,可以重写paintEvent()方法来绘制自定义内容。
绘图视图小部件(QGraphicsView),用于显示和管理绘图场景(QGraphicsScene)中的图形对象。
绘图场景(QGraphicsScene),用于管理一组图形对象,如自定义小部件。
2.5 辅助小部件
辅助小部件用于提供额外的功能或支持,包括,
进度条(QProgressBar),用于显示进度信息。
表格视图(QTableView),用于显示和编辑表格数据。
树视图(QTreeView),用于显示和编辑树形结构数据。
列表视图(QListView),用于显示和编辑列表数据。
列表如下:
类
|-------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|
| QAbstractButton | 按钮小部件的抽象基类,提供按钮通用的功能 |
| QAbstractGraphicsShapeItem | 所有路径项的公共基 |
| QAbstractItemDelegate | 用于显示和编辑模型中的数据项 |
| QAbstractItemView | 项视图类的基本功能 |
| QAbstractScrollArea | 带有按需滚动条的滚动区域 |
| QAbstractSlider | 范围内的整数值 |
| QAbstractSpinBox | Spinbox 和用于显示值的行编辑 |
| QAccessibleWidget | 实现 QWidgets 的 QAccessibleInterface |
| QAction | 可插入到小部件中的抽象用户界面操作 |
| QActionGroup | 将操作组合在一起 |
| QApplication | 管理 GUI 应用程序的控制流和主要设置 |
| QBoxLayout | 水平或垂直排列子小部件 |
| QButtonGroup | 用于组织按钮小部件组的容器 |
| QCalendarWidget | 基于月度的日历小部件,允许用户选择日期 |
| QCheckBox | 带有文本标签的复选框 |
| QColorDialog | 用于指定颜色的对话框小部件 |
| QColormap | 将与设备无关的 QColor 映射到与设备相关的像素值 |
| QColumnView | 列视图的模型/视图实现 |
| QComboBox | 组合按钮和弹出列表 |
| QCommandLinkButton | Vista 样式命令链接按钮 |
| QCommonStyle | 封装 GUI 的常见外观 |
| QCompleter | 基于物料模型的完成 |
| QDataWidgetMapper | 在数据模型的某个部分与小部件之间映射 |
| QDateEdit | 用于基于 QDateTimeEdit 小部件编辑日期的小部件 |
| QDateTimeEdit | 用于编辑日期和时间的小部件 |
| QDial | 四舍五入的量程控制(如车速表或电位计) |
| QDialog | 对话框窗口的基类 |
| QDialogButtonBox | 以适合当前小组件样式的布局显示按钮的小组件 |
| QDockWidget | 可以停靠在 QMainWindow 内或作为桌面上的顶级窗口浮动的小部件 |
| QDoubleSpinBox | 需要双倍的旋转盒小部件 |
| QErrorMessage | 错误消息显示对话框 |
| QFileDialog | 允许用户选择文件或目录的对话框 |
| QFileIconProvider | QDirModel 和 QFileSystemModel 类的文件图标 |
| QFileSystemModel | 本地文件系统的数据模型 |
| QFocusFrame | 焦点框,可以位于小部件的正常可绘制区域之外 |
| QFontComboBox | 允许用户选择字体系列的组合框 |
| QFontDialog | 用于选择字体的对话框小部件 |
| QFormLayout | 管理输入小组件的表单及其关联的标签 |
| QFormLayout::TakeRowResult | 包含 QFormLayout::takeRow() 调用的结果 |
| QFrame | 可以具有框架的小部件的基类 |
| QGesture | 表示手势,其中包含描述相应用户输入的属性 |
| QGestureEvent | 触发手势的描述 |
| QGestureRecognizer | 手势识别的基础结构 |
| QGraphicsAnchor | 表示 QGraphicsAnchorLayout 中两个项之间的锚点 |
| QGraphicsAnchorLayout | 可以在图形视图中将小部件锚定在一起的布局 |
| QGraphicsBlurEffect | 模糊效果 |
| QGraphicsColorizeEffect | 着色效果 |
| QGraphicsDropShadowEffect | 投影效果 |
| QGraphicsEffect | 所有图形效果的基类 |
| QGraphicsEllipseItem | 可以添加到 QGraphicsScene 的省略号项 |
| QGraphicsGridLayout | 用于在图形视图中管理微件的网格布局 |
| QGraphicsItem | QGraphicsScene 中所有图形项的基类 |
| QGraphicsItemGroup | 将一组项目视为单个项目的容器 |
| QGraphicsLayout | 图形视图中所有布局的基类 |
| QGraphicsLayoutItem | 可以继承以允许按布局管理自定义项 |
| QGraphicsLineItem | 可以添加到 QGraphicsScene 的行项目 |
| QGraphicsLinearLayout | 用于在图形视图中管理小部件的水平或垂直布局 |
| QGraphicsObject | 需要信号、插槽和属性的所有图形项的基类 |
| QGraphicsOpacityEffect | 不透明度效果 |
| QGraphicsPathItem | 可以添加到 QGraphicsScene 的路径项 |
| QGraphicsPixmapItem | 可以添加到 QGraphicsScene 的 Pixmap 项 |
| QGraphicsPolygonItem | 可以添加到 QGraphicsScene 的多边形项 |
| QGraphicsProxyWidget | 用于在 QGraphicsScene 中嵌入 QWidget 的代理层 |
| QGraphicsRectItem | 可以添加到 QGraphicsScene 的矩形项 |
| QGraphicsRotation | 围绕给定轴的旋转变换 |
| QGraphicsScale | 规模转型 |
| QGraphicsScene | 用于管理大量 2D 图形项目的 Surface |
| QGraphicsSceneContextMenuEvent | 图形视图框架中的上下文菜单事件 |
| QGraphicsSceneDragDropEvent | 图形视图框架中的拖放事件 |
| QGraphicsSceneEvent | 所有图形视图相关事件的基类 |
| QGraphicsSceneHelpEvent | 请求工具提示时的事件 |
| QGraphicsSceneHoverEvent | 在图形视图框架中悬停事件 |
| QGraphicsSceneMouseEvent | 图形视图框架中的鼠标事件 |
| QGraphicsSceneMoveEvent | 在图形视图框架中移动的小部件的事件 |
| QGraphicsSceneResizeEvent | 图形视图框架中用于调整小组件大小的事件 |
| QGraphicsSceneWheelEvent | 图形视图框架中的 Wheel 事件 |
| QGraphicsSimpleTextItem | 可添加到 QGraphicsScene 的简单文本路径项 |
| QGraphicsTextItem | 可以添加到 QGraphicsScene 以显示格式化文本的文本项 |
| QGraphicsTransform | 用于在QGraphicsItems上构建高级转换的抽象基类 |
| QGraphicsView | 用于显示 QGraphicsScene 内容的小部件 |
| QGraphicsWidget | QGraphicsScene 中所有小部件项的基类 |
| QGridLayout | 在网格中布置小部件 |
| QGroupBox | 将带有标题的框组合在一起 |
| QHBoxLayout | 水平排列小部件 |
| QHeaderView | 项目视图的标题行或标题列 |
| QInputDialog | 简单的便捷对话框,可从用户处获取单个值 |
| QItemDelegate | 模型中数据项的显示和编辑工具 |
| QItemEditorCreator | 无需子类化 QItemEditorCreatorBase 即可创建项目编辑器创建者库 |
| QItemEditorCreatorBase | 实现新项编辑器创建器时必须子类化的抽象基类 |
| QItemEditorFactory | 用于在视图和委托中编辑项目数据的小组件 |
| QKeyEventTransition | 关键事件的过渡 |
| QKeySequenceEdit | 允许输入 QKeySequence |
| QLCDNumber | 显示带有类似 LCD 数字的数字 |
| QLabel | 文本或图像显示 |
| QLayout | 几何管理器的基类 |
| QLayoutItem | QLayout 操作的抽象项 |
| QLineEdit | 单行文本编辑器 |
| QListView | 模型上的列表或图标视图 |
| QListWidget | 基于项的列表小组件 |
| QListWidgetItem | 用于 QListWidget 项视图类的项 |
| QMainWindow | 主应用程序窗口 |
| QMdiArea | 显示 MDI 窗口的区域 |
| QMdiSubWindow | QMdiArea 的子窗口类 |
| QMenu | 用于菜单栏、上下文菜单和其他弹出菜单的菜单小部件 |
| QMenuBar | 水平菜单栏 |
| QMessageBox | 用于通知用户或向用户提问并接收答案的模式对话框 |
| QMouseEventTransition | 鼠标事件的转换 |
| QOpenGLWidget | 用于渲染 OpenGL 图形的小部件 |
| QPanGesture | 描述用户做出的平移手势 |
| QPinchGesture | 描述用户做出的捏合手势 |
| QPlainTextDocumentLayout | 实现 QTextDocument 的纯文本布局 |
| QPlainTextEdit | 用于编辑和显示纯文本的小组件 |
| QProgressBar | 水平或垂直进度条 |
| QProgressDialog | 有关缓慢操作进度的反馈 |
| QProxyStyle | 简化动态覆盖 QStyle 元素的便利类 |
| QPushButton | 命令按钮 |
| QRadioButton | 带有文本标签的单选按钮 |
| QRubberBand | 可以指示选区或边界的矩形或线 |
| QScrollArea | 将视图滚动到另一个小部件上 |
| QScrollBar | 垂直或水平滚动条 |
| QScroller | 为任何滚动小部件或图形项目启用动态滚动 |
| QScrollerProperties | 存储QScroller的设置 |
| QShortcut | 用于创建键盘快捷键 |
| QSizeGrip | 调整大小手柄,用于调整顶级窗口的大小 |
| QSizePolicy | 描述水平和垂直调整大小策略的布局属性 |
| QSlider | 垂直或水平滑块 |
| QSpacerItem | 布局中的空白区域 |
| QSpinBox | 旋转框小部件 |
| QSplashScreen | 可在应用程序启动期间显示的初始屏幕 |
| QSplitter | 实现拆分器小部件 |
| QSplitterHandle | 拆分器的句柄功能 |
| QStackedLayout | 一次只能看到一个小部件的小部件堆栈 |
| QStackedWidget | 一次只能看到一个小部件的小部件堆栈 |
| QStandardItemEditorCreator | 无需对 QItemEditorCreatorBase 进行子类化即可注册小部件 |
| QStatusBar | 适合显示状态信息的单杠 |
| QStyle | 封装 GUI 外观的抽象基类 |
| QStyleFactory | 创建 QStyle 对象 |
| QStyleHintReturn | 返回多个基本数据类型的样式提示 |
| QStyleHintReturnMask | 返回 QRegion 的样式提示 |
| QStyleHintReturnVariant | 返回 QVariant 的样式提示 |
| QStyleOption | 存储 QStyle 函数使用的参数 |
| QStyleOptionButton | 用于描述绘图按钮的参数 |
| QStyleOptionComboBox | 用于描述绘制组合框的参数 |
| QStyleOptionComplex | 用于保存所有复杂控件通用的参数 |
| QStyleOptionDockWidget | 用于描述绘制 dock 微件的参数 |
| QStyleOptionFocusRect | 用于描述使用QStyle绘制焦点矩形的参数 |
| QStyleOptionFrame | 用于描述绘制框架的参数 |
| QStyleOptionGraphicsItem | 用于描述绘制 QGraphicsItem 所需的参数 |
| QStyleOptionGroupBox | 描述用于绘制组框的参数 |
| QStyleOptionHeader | 用于描述绘制标题的参数 |
| QStyleOptionMenuItem | 用于描述绘制菜单项所需的参数 |
| QStyleOptionProgressBar | 用于描述绘制进度条所需的参数 |
| QStyleOptionRubberBand | 用于描述绘制橡皮筋所需的参数 |
| QStyleOptionSizeGrip | 用于描述用于绘制尺寸夹点的参数 |
| QStyleOptionSlider | 用于描述绘制滑块所需的参数 |
| QStyleOptionSpinBox | 用于描述绘制旋转盒所需的参数 |
| QStyleOptionTab | 用于描述绘制选项卡栏的参数 |
| QStyleOptionTabBarBase | 用于描述选项卡栏的底部,即选项卡栏通常与之重叠的部分 |
| QStyleOptionTabWidgetFrame | 用于描述在选项卡小组件周围绘制框架的参数 |
| QStyleOptionTitleBar | 用于描述绘制标题栏的参数 |
| QStyleOptionToolBar | 用于描述绘制工具栏的参数 |
| QStyleOptionToolBox | 用于描述绘制工具箱所需的参数 |
| QStyleOptionToolButton | 用于描述绘制工具按钮的参数 |
| QStyleOptionViewItem | 用于描述用于在视图构件中绘制项目的参数 |
| QStylePainter | 在小部件中绘制 QStyle 元素的便利类 |
| QStylePlugin | 自定义QStyle插件的抽象基础 |
| QStyledItemDelegate | 模型中数据项的显示和编辑工具 |
| QSwipeGesture | 描述用户所做的滑动手势 |
| QSystemTrayIcon | 系统托盘中应用程序的图标 |
| QTabBar | 选项卡栏,例如用于选项卡式对话框 |
| QTabWidget | 选项卡式小部件堆栈 |
| QTableView | 表视图的默认模型/视图实现 |
| QTableWidget | 具有默认模型的基于项的表视图 |
| QTableWidgetItem | 用于 QTableWidget 类的项 |
| QTableWidgetSelectionRange | 在不使用模型索引和选择模型的情况下与模型中的选择进行交互的方式 |
| QTapAndHoldGesture | 描述用户发出的点击并按住(又名 LongTap)手势 |
| QTapGesture | 描述用户做出的点击手势 |
| QTextBrowser | 具有超文本导航的富文本浏览器 |
| QTextEdit | 用于编辑和显示纯文本和富文本的小组件 |
| QTextEdit::ExtraSelection | QTextEdit::ExtraSelection 结构提供了一种为文档中的给定选择指定字符格式的方法 |
| QTileRules | 用于绘制像素图或图像的规则,该像素图或图像分为九个段 |
| QTimeEdit | 用于基于 QDateTimeEdit 小部件的编辑时间的小部件 |
| QToolBar | 包含一组控件的可移动面板 |
| QToolBox | 选项卡式小组件项的列 |
| QToolButton | 命令或选项的快速访问按钮,通常在 QToolBar 中使用 |
| QToolTip | 任何小部件的工具提示(气球帮助) |
| QTreeView | 树视图的默认模型/视图实现 |
| QTreeWidget | 使用预定义树模型的树视图 |
| QTreeWidgetItem | 用于 QTreeWidget 便利类的项 |
| QTreeWidgetItemIterator | 迭代 QTreeWidget 实例中项目的方法 |
| QUndoCommand | 存储在 QUndoStack 上的所有命令的基类 |
| QUndoGroup | QUndoStack 对象组 |
| QUndoStack | QUndoCommand 对象的堆栈 |
| QUndoView | 显示 QUndoStack 的内容 |
| QVBoxLayout | 垂直排列小部件 |
| QWhatsThis | 任何小部件的简单描述,即回答问题"这是什么? |
| QWidget | 所有用户界面对象的基类 |
| QWidgetAction | 通过接口扩展 QAction,用于将自定义小部件插入到基于操作的容器(例如工具栏)中 |
| QWidgetItem | 表示小组件的布局项 |
| QWizard | 向导框架 |
| QWizardPage | 向导页的基类 |