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

Qt基本组件详解:按钮、输入框与容器控件

Qt基本组件详解:按钮、输入框与容器控件


目录
  1. 按钮类组件
    • QPushButton
    • QRadioButton
    • QCheckBox
  2. 输入框组件
    • QLineEdit
    • QTextEdit
  3. 容器组件
    • QGroupBox
  4. 综合应用示例
  5. 思维导图总结

1. 按钮类组件

1.1 QPushButton(普通按钮)

功能:基础交互按钮,支持点击事件
核心特性

  • 文本/图标显示
  • 状态变化(按下/悬停)
  • 快捷键支持

源码示例

#include <QPushButton>QPushButton* btn = new QPushButton("提交", this);
btn->setGeometry(50, 30, 100, 40);  // 位置(x,y) 尺寸(宽,高)// 连接点击信号
connect(btn, &QPushButton::clicked, [](){qDebug() << "按钮被点击!";
});

运行效果

  • 显示灰色矩形按钮,文字"提交"
  • 鼠标悬停时高亮显示
  • 点击后控制台输出提示

1.2 QRadioButton(单选按钮)

功能:互斥选择,同一容器内只能选一个
特性

  • 自动互斥(同父组件内)
  • 支持按钮组管理

源码示例

#include <QRadioButton>
#include <QButtonGroup>QRadioButton* radio1 = new QRadioButton("选项1", this);
QRadioButton* radio2 = new QRadioButton("选项2", this);
radio1->move(50, 80);
radio2->move(50, 110);// 创建按钮组
QButtonGroup* group = new QButtonGroup(this);
group->addButton(radio1, 1);  // ID=1
group->addButton(radio2, 2);  // ID=2// 选择变化事件
connect(group, QOverload<QAbstractButton*>::of(&QButtonGroup::buttonClicked),[](QAbstractButton* btn){qDebug() << "选中ID:" << group->id(btn);});

运行效果

  • 显示两个圆形选择框
  • 点击"选项1"时,"选项2"自动取消
  • 选择时打印对应ID

1.3 QCheckBox(复选框)

功能:多选控件,支持三态(选中/未选/部分选)
特性

  • 独立选择
  • tristate模式支持

源码示例

#include <QCheckBox>QCheckBox* check1 = new QCheckBox("苹果", this);
QCheckBox* check2 = new QCheckBox("香蕉", this);
check1->move(50, 150);
check2->move(50, 180);// 三态模式
check2->setTristate(true);// 状态变化事件
connect(check1, &QCheckBox::stateChanged, [](int state){qDebug() << (state ? "选中" : "取消");
});

运行效果

  • "苹果"显示方形复选框
  • "香蕉"显示带方框的复选框(三态)
  • 勾选时控制台输出状态

2. 输入框组件

2.1 QLineEdit(单行输入框)

功能:单行文本输入
核心特性

  • 密码模式
  • 输入验证
  • 占位提示文本

源码示例

#include <QLineEdit>QLineEdit* lineEdit = new QLineEdit(this);
lineEdit->setGeometry(50, 220, 200, 30);
lineEdit->setPlaceholderText("请输入用户名");// 密码模式
QLineEdit* pwdEdit = new QLineEdit(this);
pwdEdit->setGeometry(50, 260, 200, 30);
pwdEdit->setEchoMode(QLineEdit::Password);  // 密码掩码

运行效果

  • 显示矩形输入框,无输入时显示灰色提示文本
  • 密码框输入时显示圆点替代字符

2.2 QTextEdit(多行文本编辑)

功能:富文本编辑器
特性

  • 支持HTML格式
  • 文本查找/替换
  • 滚动条支持

源码示例

#include <QTextEdit>QTextEdit* textEdit = new QTextEdit(this);
textEdit->setGeometry(50, 300, 300, 200);
textEdit->setHtml("<b>加粗文本</b> <i>斜体文本</i>");// 插入纯文本
textEdit->append("追加新行");

运行效果

  • 显示带滚动条的多行编辑区
  • 首行显示加粗和斜体HTML文本
  • 底部追加普通文本行

3. 容器组件:QGroupBox

功能:创建分组容器,增强布局逻辑
特性

  • 带标题边框
  • 管理内部组件状态
  • 支持单选组容器

源码示例

#include <QGroupBox>
#include <QVBoxLayout>QGroupBox* groupBox = new QGroupBox("用户信息", this);
groupBox->setGeometry(300, 30, 250, 200);// 内部布局
QVBoxLayout* layout = new QVBoxLayout;
layout->addWidget(new QLineEdit("姓名"));
layout->addWidget(new QLineEdit("电话"));
groupBox->setLayout(layout);// 单选组容器
QGroupBox* radioGroup = new QGroupBox("性别", this);
radioGroup->setGeometry(300, 240, 250, 100);
QVBoxLayout* radioLayout = new QVBoxLayout;
radioLayout->addWidget(new QRadioButton("男"));
radioLayout->addWidget(new QRadioButton("女"));
radioGroup->setLayout(radioLayout);

运行效果

  • 显示带"用户信息"标题的矩形框
  • 内部包含两个单行输入框
  • "性别"分组框包含两个互斥单选按钮

4. 综合应用示例

#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QButtonGroup>
#include <QGroupBox>
#include <QTextEdit>
#include <QVBoxLayout>int main(int argc, char *argv[]) {QApplication app(argc, argv);QWidget window;window.setWindowTitle("Qt组件综合示例");window.resize(600, 400);// 主布局QVBoxLayout* mainLayout = new QVBoxLayout(&window);// 按钮组QGroupBox* btnGroup = new QGroupBox("操作");QHBoxLayout* btnLayout = new QHBoxLayout;btnLayout->addWidget(new QPushButton("保存"));btnLayout->addWidget(new QPushButton("取消"));btnGroup->setLayout(btnLayout);// 文本编辑区QTextEdit* textEdit = new QTextEdit;textEdit->setPlaceholderText("输入内容...");mainLayout->addWidget(btnGroup);mainLayout->addWidget(textEdit);window.show();return app.exec();
}

运行效果描述

  1. 窗口顶部显示"操作"分组框
    • 内部水平排列"保存"和"取消"按钮
  2. 下方显示多行文本编辑区
    • 空白时显示"输入内容…"提示
    • 支持多行文本输入和格式编辑
  3. 窗口尺寸可自由调整
    • 组件随窗口自动缩放

核心要点总结

  1. 按钮类:QPushButton基础交互,QRadioButton互斥选择,QCheckBox多选
  2. 输入控件:QLineEdit处理单行文本,QTextEdit支持富文本编辑
  3. 容器管理:QGroupBox实现视觉分组和逻辑分组
  4. 最佳实践:组合使用按钮组(QButtonGroup)和布局管理器实现复杂界面

原创技术笔记,转载需注明出处。更多系统编程内容持续更新中…

http://www.dtcms.com/a/269295.html

相关文章:

  • 基于Java+SpringBoot的在线小说阅读平台
  • Pandas 学习教程
  • c语言中的函数VII
  • Rust单例模式:OnceLock的使用指南
  • 熔断限流降级
  • Pipeline 引用外部数据源最佳实践
  • 深度学习--tensor(创建、属性)
  • pytest合并allure报告解决方案
  • 硅基流动:云服务平台初解
  • 钉钉企业内部机器人实现单聊会话互动开发指南
  • 【Netty应用】Netty的核心设计与应用
  • 机器学习(西瓜书) 第二章 模型评估与选择
  • Linux网络: socket初识
  • C++--map和set的使用
  • 网安系列【11】之目录穿越与文件包含漏洞详解
  • ULVAC爱发科RFS03D RF POWER SUPPLY INSTRUCTION MANUAL RF射频电源
  • Kotlin数值计算Long型乘Float浮点型
  • 安卓10.0系统修改定制化____recovery-from-boot.p文件的具体作用 在定制项目中的关联
  • LLVM,polly,最新测试
  • 【郑大二年级信安小学期】Day6:CTF密码学杂项工具包
  • Multi-Agent 多智能体架构解析--DeerFlow
  • 【DPDK应用篇】事件驱动架构:eventdev异步处理模型的设计与实现
  • 大数据Spark(六十二):Spark基于Yarn提交任务流程
  • C++内存泄漏排查
  • 施密特触发器Multisim电路仿真——硬件工程师笔记
  • 暑假读书笔记第三天
  • Linux信号处理全解析
  • Qt中的QProcess类
  • 【学习笔记】大数定理,频率与概率,均值与期望的区别
  • MySQL数据表设计 系统的营销功能 优惠券、客户使用优惠券的设计