创建单选按钮控件

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

相关推荐
李慕婉学姐6 小时前
Springboot社会工作机构管理系统w19724cv(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
杰克尼6 小时前
mysql_day2总结
数据库·mysql
SimonKing6 小时前
JetBrains 重大变革:IDEA 2025.3 统一发行版发布,告别选择困难
java·后端·程序员
网安_秋刀鱼6 小时前
【java安全】shiro反序列化1(shiro550)
java·开发语言·安全·web安全·网络安全·1024程序员节
降临-max6 小时前
JavaWeb企业级开发---快速入门、请求响应、分层解耦
java·开发语言·笔记·学习
jiayong236 小时前
Arthas 完全指南:原理与实战
java·spring·arthas
熊猫比分管理员6 小时前
免费开源代码/免费搭建体育直播系统;赛程、直播、专家卖料三大核心全解析
java
摇滚侠6 小时前
面试实战 问题三十五 Spring bean 的自动装配 介绍一下熟悉的几种设计模式 Java 四种线程池是哪些
java·spring·面试
2301_805962936 小时前
嘉立创EDA添加自己的元件和封装
java·开发语言