QT中获取选中的radioButton的两种方法
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的两种方法相关推荐
- qt5设置linux系统时间,Qt中使用QLabel显示时间的两种方法
Qt中使用QLabel显示时间的两种方法思路一致,只是实现方法不一样而已. main.cpp #include "displaytime.h" #include int main( ...
- 在金蝶云星空中获取单据体信息的两种方法
近日在学习星空产品的时候发现了两种获取单据体数据包方法,然后调试了一下,发现两种方法获取的信息都是一样的,特此记录一下. 第一种: Entity entity = this.View.BillBusi ...
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- 在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你
在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你 目录 在word文档中如何自动生成目录,两种方法制作目录,总有一种适合你 1.文章中的标题较多,每个单独调整格式太费劲,这里我们用一 ...
- python获取剪切板图片_python 获取剪切板内容的两种方法
第一种 # -*- coding: utf-8 -*- # @Time : 2020/3/16 21:26 # @File : get_text_from_cupboard_13.py # @Auth ...
- vue 获取请求url_vue 获取url里参数的两种方法小结
我就废话不多说了,大家还是直接看代码吧~ 第一种: const query = Qs.parse(location.search.substring(1)) let passport = query. ...
- php页面文件后缀名,PHP中获取文件扩展名的N种方法
PHP中获取文件扩展名的N种方法 从网上收罗的,基本上就以下这几种方式: 第1种方法: function get_extension($file) { substr(strrchr($file, '. ...
- PHP中获取文件扩展名的N种方法
PHP中获取文件扩展名的N种方法 从网上收罗的,基本上就以下这几种方式: 第1种方法: function get_extension($file) { substr(strrchr ...
- java数组循环扩容_Java中实现数组动态扩容的两种方法
Java中实现数组动态扩容的两种方法 java中初始化一个数组需要定义数组的容量,而在我们使用数组时往往会遇到数组容量不够的情况,此时我们就需要通过动态扩容的方式来来根据需求扩大数组的容量. 我们可以 ...
最新文章
- 一个操作系统的实现第九章笔记
- 【自动驾驶】4.分布式实时通信——DDS技术
- C# 线程知识--使用Task执行异步操作(转)
- zzuli 2525: 咕咕的搜索序列
- jh锂电保护电路_锂电池过充电、过放电、过流及短路保护电路原理及电路图
- 面向.NET开发人员的Dapr- actors 构建块
- 计算SDWebImage缓存大小以及清除
- 使用RMAN传输表空间复制数据
- HBase编程 API入门系列之HTable pool(6)
- 为什么微软要把数据中心设在水下?
- objective-C 2.0
- 静态include与动态include的区别
- 谷歌翻译插件安装使用
- 【kimol君的无聊小发明】—用python写音乐下载器
- Andriod8.0去除Launcher谷歌搜索框
- nxp_3|虚拟机Linux内核资源
- javascript实现下拉条联动_js实现select二级联动下拉菜单
- freeswitch1.10.7 安装部署排坑
- 使用3ds Max2022来制作简单的动漫头像
- 一个网站服务器需要多大带宽,网站需要多大的带宽 ?