当前位置: 首页 > news >正文

【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.lryc.cn/news/305362.html

相关文章:

  • 基于java springboot的图书管理系统设计和实现
  • 自定义类型:联合和枚举
  • 每日一学—由面试题“Redis 是否为单线程”引发的思考
  • chatGPT PLUS 绑卡提示信用卡被拒的解决办法
  • opencv鼠标操作与响应
  • vue里echarts的使用:画饼图和面积折线图
  • 个人建站前端篇(六)插件unplugin-auto-import的使用
  • 【Python】 剪辑法欠采样 CNN压缩近邻法欠采样
  • springmvc+ssm+springboot房屋中介服务平台的设计与实现 i174z
  • 挑战30天学完Python:Day19 文件处理
  • Spring Boot application.properties和application.yml文件的配置
  • Unity单元测试
  • Spring Bean 的生命周期了解么?
  • .ryabina勒索病毒数据怎么处理|数据解密恢复
  • 上网行为监控软件能够看到聊天内容吗
  • Java知识点一
  • Django学习笔记-forms使用
  • BM100 设计LRU缓存结构(java实现)
  • 论文阅读——ONE-PEACE
  • 围剿尚未终止 库迪深陷瑞幸9.9阳谋
  • 5G网络(接入网+承载网+核心网)
  • 学习Markdown
  • MySQL知识点总结(五)——锁
  • IDEA 2023.2 配置 JavaWeb 工程
  • 软考40-上午题-【数据库】-关系代数运算2-专门的集合运算
  • RHEL9安装Python2.7
  • 更新至2022年世界各国数字经济发展相关指标(23个指标)
  • vue从flask获取数据并显示
  • Kafka生产常见问题分析与总结
  • 重温MySQL