当前位置: 首页 > news >正文

Qt Widgets 模块中的函数详解

Qt Widgets 模块是 Qt 框架中用于创建传统桌面用户界面(GUI)的核心库。它提供了一套完整的、基于 C++ 对象的控件集合,用于构建功能强大、外观类似原生系统的应用程序。


🌟 Qt Widgets 模块核心类及其函数详解

1. 窗口和对话框 (Top-Level Containers)

核心类 (Class)功能描述常用函数 (Function) 及作用
QWidget所有用户界面对象的基类。 它是构成窗口的基本单元,可以作为独立窗口或嵌入到其他容器中。QWidget::show() / hide(): 显示或隐藏控件。
QWidget::setWindowTitle(): 设置窗口标题。
QWidget::setGeometry() / resize(): 设置控件的位置和大小。
QWidget::close(): 关闭窗口,发射 closeEvent()
QWidget::update(): 强制重绘控件,触发 paintEvent()
QMainWindow主窗口类。 专门为提供标准的应用程序界面而设计,包含预设的布局区域。QMainWindow::setMenuBar(): 设置主菜单栏。
QMainWindow::addToolBar(): 添加工具栏。
QMainWindow::setCentralWidget(): 设置主窗口的中心区域控件。
QMainWindow::statusBar(): 访问或创建状态栏。
QDialog对话框窗口的基类。 用于短暂的用户交互,通常以模态(Modal)方式运行。QDialog::exec(): 以模态方式运行对话框(阻塞父窗口)。
QDialog::open(): 以非模态方式运行对话框。
信号 accepted() / rejected(): 当用户点击 OK/Cancel 按钮时发射。

2. 基本交互控件 (Input and Display Widgets)

核心类 (Class)功能描述常用函数 (Function) 及作用
QPushButton按钮控件。 用于触发应用程序中的动作。QPushButton::setText(): 设置按钮显示的文本。
QPushButton::setIcon(): 设置按钮图标。
QPushButton::setCheckable(): 设置按钮为可选中/不可选中状态。
信号 clicked(): 按钮被点击时发射(最常用)。
QLabel文本或图片显示。 用于显示不可编辑的文本、图片或 GIF 动画。QLabel::setText(): 设置显示的文本。
QLabel::setPixmap(): 设置显示的图片 (QPixmap)。
QLabel::setWordWrap(): 启用文本自动换行。
QLineEdit单行文本输入框。QLineEdit::text(): 获取当前输入文本 (QString)。
QLineEdit::setText(): 设置文本。
QLineEdit::setPlaceholderText(): 设置占位符文本。
QLineEdit::setEchoMode(): 设置文本显示模式(如密码模式)。
信号 textChanged(const QString &): 文本改变时发射。
QTextEdit多行富文本编辑器。 支持段落、格式、图片等。QTextEdit::toPlainText(): 获取纯文本内容。
QTextEdit::setText(): 设置文本内容。
QTextEdit::setFontFamily(): 设置字体。
QTextEdit::append(): 在文档末尾追加文本。
QCheckBox复选框。 提供开/关或多选选项。QCheckBox::isChecked(): 检查是否被选中。
QCheckBox::setChecked(): 设置选中状态。
信号 toggled(bool): 选中状态改变时发射。

3. 布局管理器 (Layout Managers)

布局管理器用于自动管理子控件的位置和大小,确保界面在窗口调整时能够正确伸缩。

核心类 (Class)功能描述常用函数 (Function) 及作用
QLayout布局基类。N/A
QHBoxLayout水平布局。 控件从左到右依次排列。QLayout::addWidget(QWidget *widget): 添加一个控件。
QLayout::addStretch(int stretch = 0): 添加一个可伸缩的空白区域。
QVBoxLayout垂直布局。 控件从上到下依次排列。QLayout::addWidget(QWidget *widget): 添加一个控件。
QGridLayout网格布局。 控件按行和列排列。QGridLayout::addWidget(QWidget *widget, int row, int column, int rowSpan, int columnSpan): 添加控件并指定其起始位置和跨越的行/列数。

4. 模型/视图控件 (Model/View Widgets)

用于高效地展示大量复杂数据(如表格、树或列表)。

核心类 (Class)功能描述常用函数 (Function) 及作用
QAbstractItemView视图基类。N/A
QTableView表格视图。 以二维表格形式显示数据。QTableView::setModel(QAbstractItemModel *model): 绑定数据模型(如 QStandardItemModelQSqlTableModel)。
QTableView::setSortingEnabled(): 启用点击表头排序。
QTreeView树形视图。 以层次结构(树)形式显示数据。QTreeView::expandAll() / collapseAll(): 展开或折叠所有节点。
QListView列表视图。 以简单的列表形式显示数据。QListView::setSelectionMode(): 设置用户的选择模式(单选/多选)。

5. 其他重要类

核心类 (Class)功能描述常用函数 (Function) 及作用
QMessageBox标准消息对话框。 用于向用户显示信息、警告或错误。QMessageBox::information() / warning() / critical(): 静态函数,一键弹出模态对话框。
QMessageBox::addButton(): 添加自定义按钮。
QApplication桌面应用程序的基类。 继承自 QCoreApplication 并添加了 GUI 特性。QApplication::exec(): 启动 GUI 事件循环(阻塞直到应用程序退出)。
QApplication::setApplicationName(): 设置应用程序名称。
QMenuBar菜单栏。 用于添加菜单项到 QMainWindowQMenuBar::addMenu(): 添加一个顶级菜单(如 “File”, “Edit”)。
QAction动作对象。 封装了用户界面中的一个逻辑动作,可同时用于菜单项、工具栏按钮或上下文菜单。QAction::setText() / setIcon(): 设置显示文本和图标。
信号 triggered(): 动作被激活时发射。

💡 Qt Widgets 的核心编程模式

掌握 Qt Widgets 的关键在于理解其核心机制:

  1. 对象树 (Parent/Child): 所有控件都应该有父控件 (QWidget *parent)。父控件被删除时,子控件也会被自动删除(自动内存管理)。
  2. 信号与槽 (Signals & Slots): 这是控件交互的方式。例如,您将 QPushButtonclicked() 信号连接到您自定义类中的一个 onButtonClicked()
  3. 布局 (Layouts): 避免使用绝对坐标 (setGeometry),而应该使用 QHBoxLayout, QVBoxLayout, 或 QGridLayout 来让界面自适应窗口大小的变化。
http://www.dtcms.com/a/613691.html

相关文章:

  • 怎样才能被百度秒收录我的网站(百度不收录网站怎么办)
  • nginx-file-server
  • 18.PHP基础-递归递推算法
  • 郑州软件开发公司网站广西医院的网站建设
  • 费县做网站职业教育专业建设验收网站
  • 第五章 防火墙设备互联
  • 建导航网站seo企业优化顾问
  • 2025.11.15 力扣每日一题
  • LeetCode算法日记 - Day 104: 通配符匹配
  • RDMA内存保护概念---MR,PD
  • 11月13号作业
  • 怎样建立网站目录结构炒股网站开发
  • 【STM32MP157 异核通信框架学习篇】(10)Linux下Remoteproc相关API (上)
  • 东莞企业建站平台中企动力 做网站 怎么样
  • 虚拟机的未来:从云计算到量子模拟
  • 前端响应式设计资源,框架+模板
  • 品牌网站建设服务网络品牌塑造
  • C语言编译系统 | 高效编译与优化技术分析
  • L2层差错控制与HARQ协议介绍
  • 4. Qt深入 线程和QObject
  • 印尼游戏出海合规指南:法律框架、税务政策与运营挑战
  • 【Java Web学习 | 第11篇】JavaScript(5)BOM
  • 打造您专属的高效DNS解析器:RethinkDNS
  • 网上书店网站建设方案策划如何建设好一个网站
  • Spring Framework 中文官方文档
  • 深度剖析 C++ vector的底层实现
  • USDe:站在稳定币、永续化与资产代币化三大趋势交汇点的新型美元
  • SpringBoot 2.x 升级到 3.x 时 Swagger 迁移完整指南
  • 网站首页浮动窗口代码忘记了wordpress登录密码忘记
  • springMVC(3)学习