创建单选按钮控件

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

相关推荐
之歆13 小时前
Spring AI入门到实战到原理源码-MCP
java·人工智能·spring
Java.熵减码农13 小时前
解决Linux修改环境变量后导致登录循环进不去系统的问题
linux·运维·服务器
yangminlei13 小时前
Spring Boot3集成LiteFlow!轻松实现业务流程编排
java·spring boot·后端
qq_3181215913 小时前
互联网大厂Java面试故事:从Spring Boot到微服务架构的技术挑战与解答
java·spring boot·redis·spring cloud·微服务·面试·内容社区
计算机毕设VX:Fegn089513 小时前
计算机毕业设计|基于springboot + vue医院设备管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
J_liaty13 小时前
Spring Boot整合Nacos:从入门到精通
java·spring boot·后端·nacos
明天好,会的13 小时前
分形生成实验(五):人机协同破局--30万token揭示Actix-web状态管理的微妙边界
运维·服务器·前端
Mr__Miss13 小时前
保持redis和数据库一致性(双写一致性)
数据库·redis·spring
阿蒙Amon14 小时前
C#每日面试题-Array和ArrayList的区别
java·开发语言·c#
daidaidaiyu14 小时前
Spring IOC 源码学习 一文学习完整的加载流程
java·spring