【Qt学习】QRadioButton 的介绍与使用(性别选择、模拟点餐)

文章目录

  • 介绍
    • 实例使用
    • 实例1(性别选择 - 单选 + 隐藏)
    • 实例2(模拟点餐,多组单选)
  • 相关资源文件

介绍

这里简单QRadioButton类 进行介绍

  • QRadioButton 继承自 QAbstractButton ,用于创建单选按钮;对于父类的属性和⽤法, QRadioButton 同样适⽤。

由于QRadioButton继承自QAbstractButton类,因此拥有了一些与按钮相关的属性和方法。其中一个重要的属性就是check属性,用于判断按钮是否被选中

有以下三属性

属性说明
checkable()检查是否允许被选中
checked()检查是否已被选中
autoExclusive()是否排他:即当选中该按钮后是否会取消对其他按钮的选择(QRadioButton默认排他)

我们利用上述的属性进行两实例编写:

实例使用

实例1(性别选择 - 单选 + 隐藏)

我们首先在Designer界面进行下面的布局:
在这里插入图片描述

对于上述四个按钮,我们分别编写其槽函数,用于选中按钮时更改上方label所显示的内容

// 当点击某个按钮时,更新文本
void Widget::on_radioButton_male_clicked()
{ui->label->setText("您的性别为: 男");
}void Widget::on_radioButton_female_clicked()
{ui->label->setText("您的性别为: 女");
}void Widget::on_radioButton_hide_clicked()
{ui->label->setText("你的性别为:(隐藏性别)");
}void Widget::on_radioButton_gunship_clicked()
{ui->label->setText("您选择的性别为: 武装直升机");
}

但,一个人的性别是武装直升机,显然是不合理的,我们可以通过上面介绍的属性函数进行按钮无效化:(并可以添加默认选项)

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 将 “性别隐藏” 添加为默认选项:ui->radioButton_hide->setChecked(true);// 将按钮无效化(无法点击)// ui->radioButton_gunship->setDisabled(true);ui->radioButton_gunship->setEnabled(false);
}

效果如下:

请添加图片描述


实例2(模拟点餐,多组单选)

我们首先在Designer界面下进行如下布局:

在这里插入图片描述

我们知道,QRadioButton默认是排他的,为了使每种餐点都能点一份,需要进行分组操作:

  1. 在Widget类的头文件(widget.h)中添加按钮组的声明作为私有成员变量:
private:QButtonGroup* buttonGroup1;QButtonGroup* buttonGroup2;QButtonGroup* buttonGroup3;
  1. widget.cc中的构造函数中初始化这些成员变量:
Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// 分组buttonGroup1 = new QButtonGroup(this);buttonGroup2 = new QButtonGroup(this);buttonGroup3 = new QButtonGroup(this);// 把上述单选按钮, 放到不同的组里.buttonGroup1->addButton(ui->radioButton_1);buttonGroup1->addButton(ui->radioButton_2);buttonGroup1->addButton(ui->radioButton_3);buttonGroup2->addButton(ui->radioButton_4);buttonGroup2->addButton(ui->radioButton_5);buttonGroup2->addButton(ui->radioButton_6);buttonGroup3->addButton(ui->radioButton_7);buttonGroup3->addButton(ui->radioButton_8);buttonGroup3->addButton(ui->radioButton_9);
}
  1. 最后,我们在提交按钮的槽函数中进行两个操作:
    • 提取每组的餐饮选择
    • 弹出提示框,框内为提取的内容(即选择的内容)
void Widget::on_pushButton_clicked()
{QString message;// 提取三组的选择QButtonGroup* groups[] = {buttonGroup1, buttonGroup2, buttonGroup3};for (int i = 0; i < 3; ++i) {QAbstractButton* checkedButton = groups[i]->checkedButton();if (checkedButton) {message +=  QString::number(i + 1) + " " + checkedButton->text() + "\n";} else {message +=  QString::number(i + 1) + " 未选择\n";}}// 将选择作为提示框提交QMessageBox::information(this, "您选择的餐饮是", message);
}

效果如下:
请添加图片描述

相关资源文件

上述涉及的代码等资源文件在👇

QRadioButton的使用 - 模拟点餐
QRadioButton的使用 - 性别选择

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/700484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTTP攻击,该怎么防护

一般网络世界里为人们所熟知的DDoS攻击&#xff0c;多数是通过对带宽或网络计算资源的持续、大量消耗&#xff0c;最终导致目标网络与业务的瘫痪&#xff1b;这类DDOS攻击&#xff0c;工作在OSI模型的网络层与传输层&#xff0c;利用协议特点构造恶意的请求载荷来达成目标资源耗…

2024年【起重机司机(限桥式起重机)】考试报名及起重机司机(限桥式起重机)证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 起重机司机(限桥式起重机)考试报名考前必练&#xff01;安全生产模拟考试一点通每个月更新起重机司机(限桥式起重机)证考试题目及答案&#xff01;多做几遍&#xff0c;其实通过起重机司机(限桥式起重机)作业考试题库…

修复Microsoft Edge WebView2无法安装的问题

修复Microsoft Edge WebView2无法安装的问题 场景解决方案 场景 系统&#xff1a;win11 电脑&#xff1a;联想14 前提&#xff1a;使用Geek Uninstaller强制删除了Microsoft Edge WebView2 同时下载了clash verge。 发现根本无法运行&#xff08;点击了无任何反应且图标颜色…

【深度学习笔记】3_6 代码实现softmax-regression

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 3.6 softmax回归的从零开始实现 这一节我们来动手实现softmax回归。首先导入本节实现所需的包或模块。 import torch import torchvision import numpy as np import…

QT Widget自定义菜单

此文以设置QListWidget的自定义菜单为例&#xff0c;其他继承于QWidget的类也都可以按类似的方法去实现。 1、ui文件设置contextMenuPolicy属性为CustomContextMenu 2、添加槽函数 /*** brief onCustomContextMenuRequested 右键弹出菜单* param pos 右键的坐标*/void onCusto…

十一、Qt数据库操作

一、Sql介绍 Qt Sql模块包含多个类&#xff0c;实现数据库的连接&#xff0c;Sql语句的执行&#xff0c;数据获取与界面显示&#xff0c;数据与界面直接使用Model/View结构。1、使用Sql模块 &#xff08;1&#xff09;工程加入 QT sql&#xff08;2&#xff09;添加头文件 …

2023年的AI模型学习/部署/优化

可以的话&#xff0c;github上给点一个小心心&#xff0c;感谢观看。 LDC边缘检测的轻量级密集卷积神经网络&#xff1a; meiqisheng/LDC (github.com)https://github.com/meiqisheng/LDC segment-anything分割一切的图像分割算法模型&#xff1a; meiqisheng/segment-anyt…

群晖NAS DSM7.2.1安装宝塔之后无法登陆账号密码问题解决

宝塔的安装就不在这赘述了&#xff0c;只说下&#xff0c;启动之后默认账号密码无法登陆的问题。 按照上面给出的账号密码&#xff0c;无法登陆 然后点忘记密码&#xff0c;由于是docker安装的&#xff0c;根目录下没有/www/server/panel 。 也没有bt命令 要怎么修改呢。 既然…

【Java程序设计】【C00283】基于Springboot的校园志愿者管理系统(有论文)

基于Springboot的校园志愿者管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的校园志愿者管理系统 本系统分为系统功能模块、管理员功能模块以及志愿者功能模块。 系统功能模块&#xff1a;用户进入到系统…

应用中如何将单数据库升级为集群【数据库集群】【MySQL集群模式】

MySQL集群架构搭建以及多数据源管理实战 应用中如何将单数据库升级为集群1、搭建MySQL集群&#xff0c;实现服务和数据的高可用1>搭建基础MySQL服务。​ 2、启动MySQL服务​ 3、连接MySQL 2>搭建MySQL主从集群1》配置master服务2》配置slave从服务3》主从集群测试4》全库…

Github 2024-02-23 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-02-23统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量非开发语言项目4Python项目3TypeScript项目1HTML项目1Dart项目1Rust项目1 从零开始构建你喜爱的技术 创建周…

智胜未来,新时代IT技术人风口攻略-第七版(弃稿)

文章目录 前言鸿蒙生态科普调研人员画像角色先行结论 - 市场下的增量蛋糕高校助力鸿蒙 - 掀起鸿蒙教育热潮高校鸿蒙课程开设占比 - 巨大需求背后是矛盾冲突教研力量并非唯一原因 - 看重教学成果复用与效率 企业布局规划 - 多元市场前瞻视野全盘接纳仍需一段时间 - 积极正向的一…

【新手易错点】golang中byte和rune

1 总体区别 在Golang中&#xff0c;byte和rune是两种不同类型的数据。简单来说&#xff0c;byte是一个8位的无符号整数类型&#xff0c;而rune则是一个32位的Unicode字符类型。 Byte: 在Golang中&#xff0c;byte类型实际上是uint8的别名&#xff0c;它用来表示8位的无符号整…

2.22日学习打卡----正则表达式

2.22日学习打卡 目录&#xff1a; 2.22日学习打卡正则表达式什么是正则表达式&#xff1f;正则表达式的作用正则表达式特点基础语法表格元字符Java 中正则表达式的使用正则表达式语法规则内容限定单个字符限定范围字符限定取反限定 长度限定长度限定符号预定义字符正则表达式的…

【MySQL】MySQL从0到0.9 - 持续更新ing

MySQL SQL 基础 DDL 语句 show databases; show tables; desc table_name; # 获取表信息 show create table 表名; // 查询指定表的建表语句 数据类型 char(10) 不满10个会用空格填充&#xff0c;性能好一点 varchar(10) 变长字符串&#xff0c;性能差一点 CREATE TABLE tabl…

力扣 187. 重复的DNA序列

1.题目 DNA序列 由一系列核苷酸组成&#xff0c;缩写为 A, C, G 和 T.。 例如&#xff0c;"ACGAATTCCG" 是一个 DNA序列 。 在研究 DNA 时&#xff0c;识别 DNA 中的重复序列非常有用。 给定一个表示 DNA序列 的字符串 s &#xff0c;返回所有在 DNA 分子中出现不止一…

【word技巧】word文档如何设置限制编辑

Word文档中为了提高办公效率以及文档安全&#xff0c;我们可以考虑为word文档设置一个限制编辑起到保护文档的作用。今天介绍word文档设置限制编辑的方法。 打开word文档之后&#xff0c;点击功能栏中的【审阅】功能&#xff0c;选择【限制编辑】功能 这是我们勾选右边弹框中的…

【Spring MVC篇】简单案例分析

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Spring MVC】 本专栏旨在分享学习Spring MVC的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一、加法计算器二…

匿名+有名管道

管道 相关概念 4种情况 正常情况&#xff0c;如果管道没有数据&#xff0c;读端陷入等待&#xff0c;直到有数据才能唤醒正常情况&#xff0c;如果管道被写满&#xff0c;写端陷入等待&#xff0c;直到有空间才能唤醒写段关闭&#xff0c;读端一直读取&#xff0c;read返回0…

mac m1调试aarch64 android kernel最终方案

问题 这是之前的&#xff0c;调试android kernel的方案还是太笨重了 完美调试android-goldfish(linux kernel) aarch64的方法 然后&#xff0c;看GeekCon AVSS 2023 Qualifier&#xff0c;通过 sdk-repo-linux_aarch64-emulator-8632828.zip 进行启动 完整编译的aosp kernnl…