QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行:

方法一:采用对象名称进行获取

代码:

 1     QRadioButton* pbtn = qobject_cast<QRadioButton*>(ui->BG->checkedButton());2     QString name = pbtn->objectName();3     if(!QString::compare(name, "radioButton"))4     {5         QMessageBox::information(this, "Tips", "red chosed!", QMessageBox::Ok);6     }7     else if(!QString::compare(name, "radioButton_2"))8     {9         QMessageBox::information(this, "Tips", "blue chosed!", QMessageBox::Ok);
10     }
11     else
12     {
13         QMessageBox::information(this, "Tips", "black chosed!", QMessageBox::Ok);
14     }

该代码片段中,首先使用qobject_cast将checkedButton()函数返回的QAbstractionButton转换为其子类类型QRadioButton.然后,获取被选中按钮的对象名。这可以通过获取objectName这个属性获取。再稍作判断即可得知结果。注:BG是手动添加的QGroupButton类型,radioButton和radioButton_2,radioButton_3都是UI中添加的radioButton控件。

方法二:通过button的ID来获取

代码:

位于构造函数中的代码(初始选中第一个按钮):

1     ui->BG->setId(ui->radioButton, 0);
2     ui->BG->setId(ui->radioButton_2, 1);
3     ui->BG->setId(ui->radioButton_3, 2);
4     ui->radioButton->setChecked(true);

这一步是必须的,必须先设置好radiobutton组中各个按钮的ID值,否则会导致程序崩溃。

响应信号的槽函数或其他函数中的代码:

 1     int a = ui->BG->checkedId();2     switch(a)3     {4     case 0:5         QMessageBox::information(this, "Tips", "Red chosed!", QMessageBox::Ok);6         break;7     case 1:8         QMessageBox::information(this, "Tips", "blue chosed!", QMessageBox::Ok);9         break;
10     case 2:
11         QMessageBox::information(this, "Tips", "black chosed!", QMessageBox::Ok);
12         break;
13     default:
14         break;
15     }

两种方法具有同样的效果。

QT中获取选中的radioButton的两种方法相关推荐

  1. qt5设置linux系统时间,Qt中使用QLabel显示时间的两种方法

    Qt中使用QLabel显示时间的两种方法思路一致,只是实现方法不一样而已. main.cpp #include "displaytime.h" #include int main( ...

  2. 在金蝶云星空中获取单据体信息的两种方法

    近日在学习星空产品的时候发现了两种获取单据体数据包方法,然后调试了一下,发现两种方法获取的信息都是一样的,特此记录一下. 第一种: Entity entity = this.View.BillBusi ...

  3. JAVA中获取文件MD5值的四种方法

    JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...

  4. 在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你

    在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你 目录 在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你 1.文章中的标题较多,每个单独调整格式太费劲,这里我们用一 ...

  5. python获取剪切板图片_python 获取剪切板内容的两种方法

    第一种 # -*- coding: utf-8 -*- # @Time : 2020/3/16 21:26 # @File : get_text_from_cupboard_13.py # @Auth ...

  6. vue 获取请求url_vue 获取url里参数的两种方法小结

    我就废话不多说了,大家还是直接看代码吧~ 第一种: const query = Qs.parse(location.search.substring(1)) let passport = query. ...

  7. php页面文件后缀名,PHP中获取文件扩展名的N种方法

    PHP中获取文件扩展名的N种方法 从网上收罗的,基本上就以下这几种方式: 第1种方法: function get_extension($file) { substr(strrchr($file, '. ...

  8. PHP中获取文件扩展名的N种方法

    PHP中获取文件扩展名的N种方法   从网上收罗的,基本上就以下这几种方式:      第1种方法:  function get_extension($file)  {  substr(strrchr ...

  9. java数组循环扩容_Java中实现数组动态扩容的两种方法

    Java中实现数组动态扩容的两种方法 java中初始化一个数组需要定义数组的容量,而在我们使用数组时往往会遇到数组容量不够的情况,此时我们就需要通过动态扩容的方式来来根据需求扩大数组的容量. 我们可以 ...

最新文章

  1. 一个操作系统的实现第九章笔记
  2. 【自动驾驶】4.分布式实时通信——DDS技术
  3. C# 线程知识--使用Task执行异步操作(转)
  4. zzuli 2525: 咕咕的搜索序列
  5. jh锂电保护电路_锂电池过充电、过放电、过流及短路保护电路原理及电路图
  6. 面向.NET开发人员的Dapr- actors 构建块
  7. 计算SDWebImage缓存大小以及清除
  8. 使用RMAN传输表空间复制数据
  9. HBase编程 API入门系列之HTable pool(6)
  10. 为什么微软要把数据中心设在水下?
  11. objective-C 2.0
  12. 静态include与动态include的区别
  13. 谷歌翻译插件安装使用
  14. 【kimol君的无聊小发明】—用python写音乐下载器
  15. Andriod8.0去除Launcher谷歌搜索框
  16. nxp_3|虚拟机Linux内核资源
  17. javascript实现下拉条联动_js实现select二级联动下拉菜单
  18. freeswitch1.10.7 安装部署排坑
  19. 使用3ds Max2022来制作简单的动漫头像
  20. 一个网站服务器需要多大带宽,网站需要多大的带宽 ?

热门文章

  1. 【原创】精品课程之PS快速抠图!50秒快速人像抠图!
  2. git 在往云端push代码时候报错detached head
  3. 在网商大会上马云的讲话
  4. 2022-5月如何使用疯狂URL获取抖音推流码地址(抖音无人直播教程)
  5. Win11中双显示器快捷键 Win + Shift + 左/右失效问题
  6. 购房指南—买房经验总结
  7. ul、li显示图片标记
  8. 孙陶然:创业是从零开始的一次全新旅程
  9. matlab 模拟风,【Matlab实现】风场仿真
  10. ElasticSearch教程与实战:从搭建服务到Spring Boot整合