创建单选按钮控件

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

相关推荐
qq_269506758 小时前
第30课-请求与响应
java
李兆龙的博客8 小时前
从一到无穷大 #94:ClickHouse TimeSeries——时间线组织与 Prometheus 兼容性
数据库
冰暮流星8 小时前
事务的四个特性(ACID)详解
数据库
qq_269506758 小时前
第28课-AJAX与前端框架
java
程序员清风8 小时前
Java 后端如何接入大语言模型
java·spring boot·架构·aigc
byte轻骑兵8 小时前
时序数据库选型全指南|大数据工业场景Apache IoTDB落地实操
大数据·数据库·人工智能·apache iotdb
xieliyu.8 小时前
JVM 垃圾回收机制详解:从标记过程、回收算法到垃圾收集器
java·jvm·笔记·java-ee
JavacKaka8 小时前
Redis大Key导致生产事故复盘博客-2026-09-18
java
Sirens.8 小时前
MySQL数据库:JDBC编程
数据库·mysql
右耳朵猫AI9 小时前
Java周刊2026W38 | Micronaut 修补三漏洞、JDK 27 提速 54%、Jetty 修复抖动测试
java·后端·spring