创建单选按钮控件

QRadioButton(单选按钮)详细介绍

QRadioButton 是 Qt 框架中用于创建单选按钮的控件,属于按钮控件家族。它的核心作用是在多个选项中让用户只能选择其中一个,形成互斥的选择组。


主要功能和特点

  • 互斥选择
    多个单选按钮放在同一个父控件中,或者通过 QButtonGroup 组合时,它们组成一个互斥组,用户只能选中其中一个按钮。选中一个时,其他自动取消选中状态。
  • 显示文本标签
    每个单选按钮都有一个文本标签,显示选项的名称,用户点击标签或按钮都可以切换选择状态。
  • 图形界面表现
    单选按钮是一个带圆形"点"的按钮,点亮表示选中,空白表示未选中。它是传统 GUI 中常见的选择方式。
  • 信号机制
    当按钮的选中状态发生变化时,会发出信号(如 toggled(bool)),方便程序捕获用户操作并响应。
  • 状态管理
    可以设置按钮是否可用、是否默认选中、是否允许取消选中(通常不允许,因为单选按钮必须有且仅有一个被选中)。

常见应用场景

  • 表单中选择性别(男、女、其他)
  • 设置里选择模式(简单、高级、自定义)
  • 问卷调查中单项选择题
  • 任何需要互斥选项的界面元素

使用提示

  • 分组管理
    如果多个单选按钮需要互斥,但放在不同容器内,可使用 QButtonGroup 进行分组,确保互斥行为。
  • 布局安排
    单选按钮通常垂直或水平排列,方便用户浏览和选择。
  • 辅助控件
    常配合标签控件、分组框(QGroupBox)使用,提升界面美观与逻辑清晰。

头文件定义

QRadioButton ***radioButton1, ***radioButton2;

实例化控件

radioButton1 = new QRadioButton(this );
radioButton1->setText("单选按钮1");
radioButton1->setGeometry(200, 20, 100, 30);

radioButton2 = new QRadioButton(this );
radioButton2->setText("单选按钮2");
radioButton2->setGeometry(200, 50, 100, 30);

运行程序后你将会看到两个单选按钮控件

你可以在这两个单选按钮中进行选择

但不能同时选择两个,因为他们是互斥的。

#include "MyFirstQt6.h"
#include <QtWidgets>

MyFirstQt6::MyFirstQt6(QWidget* parent)
: QMainWindow(parent)
{
setWindowTitle("第一个Qt6窗口");
resize(1200, 600);

QLabel* label = new QLabel(this );
label->setText("这是一个标签控件");
label->setGeometry(10, 30, 200, 50);

QPushButton* button = new QPushButton(this );
button->setText("这是一个按钮控件");
button->setGeometry(10, 80, 200, 50);
connect(button, &QPushButton::clicked, this , &MyFirstQt6::onButtonClicked);

lineEdit = new QLineEdit(this );
lineEdit->setGeometry(10, 130, 200, 50);

TextEdit = new QTextEdit(this );
TextEdit->setGeometry(10, 180, 300, 100);

PlainTextEdit = new QPlainTextEdit(this );
PlainTextEdit->setGeometry(10, 280, 300, 100);

radioButton1 = new QRadioButton(this );
radioButton1->setText("单选按钮1");
radioButton1->setGeometry(200, 20, 100, 30);

radioButton2 = new QRadioButton(this );
radioButton2->setText("单选按钮2");
radioButton2->setGeometry(200, 50, 100, 30);
}

MyFirstQt6::~MyFirstQt6()
{}

void MyFirstQt6::onButtonClicked()
{
QString text = TextEdit->toPlainText();
QMessageBox::information(this, "信息", "你输入的内容是: " + text);
}

部分内容省略了,课程内容有完整的详细教程。

计算机技术课程https://blog.csdn.net/2301_76542477/article/details/149032632?spm=1011.2415.3001.5331

相关推荐
库玛西32 分钟前
深入浅出传输层:UDP 与 TCP 协议全景指南
linux·服务器·网络·c++·笔记·tcp/ip·udp
一只小bit36 分钟前
Redis哨兵机制、主从复制与集群搭建与维护
数据库·redis·bootstrap
随便做点啥41 分钟前
32卡-64G-910B4-16后端-(Qwen3.8-27B-W8A8)集群部署报告
运维·服务器·经验分享·docker·vllm
zlwool7 小时前
图纸管理选型避坑指南
数据库·erp·设备erp·非标机械
Julien20048 小时前
控制 SELinux 文件上下文
linux·运维·服务器
EXI-小洲8 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
sulikey8 小时前
Linux Core Dump 完全指南:从原理到实战的崩溃调试手册。什么是core dump?程序报错core dumped怎么办?
linux·服务器·操作系统·调试·coredump
Lifangyun_WD8 小时前
第一次租 GPU 服务器怎么开始?镜像、SSH、数据存储和停机前要做什么
服务器·云计算·gpu算力·gpu算力租赁
小灰灰搞电子8 小时前
完全驾驭 Qt 与数据库:C++ ORM 框架 QxOrm 原理与实践指南
数据库·c++·qt
2601_961901709 小时前
SpringBoot使用Nacos进行application.yml配置管理
java·spring boot·spring