创建单选按钮控件

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

相关推荐
麦聪聊数据3 小时前
企业数据市场建设(四):流程闭环与价值运营,让数据市场真正转起来
运维·数据库
正儿八经的少年3 小时前
redis 的大 key 和热 key 详解
数据库·redis·缓存
AI砖家3 小时前
多智能体系统实战:架构设计、数据库表设计与 Skill 体系
数据库·多智能体·skill·agent架构设计·agengt
豆角焖肉4 小时前
Maven进阶与搭建私服
java·maven
大不点wow4 小时前
Java序列化与反序列化:让对象走出JVM
java·开发语言·jvm
噢,我明白了4 小时前
Java中日期和字符串的处理
java·开发语言·日期
dkbnull4 小时前
Spring Boot请求处理组件对比详解
java·spring boot
jun_bai4 小时前
Orthanc服务器使用java上传dicom影像文件
java·运维·服务器
夜雪一千4 小时前
MySQL查询条件的顺序是否影响查询效率
数据库·mysql
顺风尿一寸4 小时前
记一次 Spring AOP 与定时任务引发的死锁排查
java