1. 程式人生 > >QT中獲取選中的radioButton的兩種方法

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     }
複製程式碼

兩種方法具有同樣的效果。

相關推薦

Spring獲取bean的方法

第一種採用註解方法 註解的方法比較簡單,不在進行詳細介紹,這邊主要將的是另外一種方法,當通過註解獲取不到bean時,可以採用根據上下文獲取。 第二種上下文獲取bean @Component public class SpringBeanUtil implements Appli

Qt開發】Qt顯示影象的方法對比

在Qt中處理圖片一般都要用到QImage類,但是QImage的物件不能夠直接顯示出來,要想能看到圖片,初步發現有兩種方法。 一、QImage轉QPixmap,然後用QLabel::setPixmap() image=new QImage("D:/Temp/XX.jpg

python獲取cookie的方法

第一種是利用selenium+phantomjs無介面瀏覽器的形式訪問網站,再獲取cookie值:# 匯入模組 from selenium import webdriver driver=webdri

OpenCV在Qt顯示視訊的方法

參考:http://blog.csdn.net/augusdi/article/details/8865541 程式碼如下: 注意,要在ui介面上放置一個“Vertical Layout”控制元件,調整到合適大小 #include <QtWidgets/QMainWi

QT獲取選中radioButton方法

QT中要獲取radioButton組中被選中的那個按鈕,可以採用兩種如下兩種辦法進行: 方法一:採用物件名稱進行獲取 程式碼: 1 QRadioButton* pbtn = qobject_cast<QRadioButton*>(ui->

php獲取陣列重複資料的方法

<meta charset='utf-8'> <?php function FetchRepeatMemberInArray($array) { // 獲取去掉重複資料的陣列 $unique_arr = array_unique

JS獲取元素的第二方法

utf display 獲取 重復執行 ecb sed 文檔 練習 elements 1.靜態方法   var oUl = document.getElementById(‘‘); 2.動態方法   document.getElementsByTagName(‘‘);

python執行shell的方法總結

sleep follow 命令執行 inux 接收 以及 Go ber BE 這篇文章主要介紹了python中執行shell的兩種方法,有兩種方法可以在Python中執行SHELL程序,方法一是使用Python的commands包,方法二則是使用subprocess包,這

for 循環遍歷字典的鍵值方法

time bsp 山東 解包 江蘇 方法 獲取 for for 循環 一、先獲取key,然後通過dic[key]獲取value import time dict = {‘山東‘:‘濟南‘,‘河南‘:‘鄭州‘,‘江蘇‘:‘南京‘} for key in dict:  prin

【微信小程式】在js匯入第三方js或自己寫的js,使用外部js的function的方法 import和require的區別使用方法

如下 定義了一個外部js檔案,其中有一個function import lunaCommon from '../lunaCommon.js'; var ctx = wx.getStorageSync("ctx"); var filter = "/ms-code"; var apis

logstash獲取nginx日誌 方法

獲取nginx日誌要寫grok 還有很多正則來做 那麼很多像我一樣的新手不知道該如何操作 下面我們來個簡單的 第一種 : 重點是: 把nginx的access.log日誌格式改成json型別 更重要的是下面兩行 log_format json '{"@timestamp"

java產生隨機數的方法

1.可以使用Java api中java.lang包中的Math類,其中Math.random()方法是一個可以產生[0.0,1.0]區間內的一個雙精度浮點數的方法 如: 產生一個100以內的整數:int x=(int)(Math.random()*100); 2.Random random =

破壞iNand的bootloader的方法

第一種方法之前的文章講過,但是我後來用這種方法來破壞卻破壞不了,原因我不知道,所以就想到用第二種方法來破壞。 第一種方法:開啟SecureCRT,引數設定好,啟動開發板,在SecureCRT中 輸入:busybox dd if=/dev/zero of=/dev/block/mmcblk0

獲取SHA1的方法

第一,使用命令列keytool -list -v -keystore + keystore的路徑 例如:  keytool -list -v -keystore “C:\Users\Tool\android\debug.keystore”。  第二個方法完全來自於一位網

sklearn 模型儲存的方法

一、 sklearn中提供了高效的模型持久化模組joblib,將模型儲存至硬碟。 from sklearn.externals import joblib #lr是一個LogisticRegression模型 joblib.dump(lr, 'lr.model') lr = joblib.load('

機器學習實戰系列:sklearn 模型儲存的方法

一、 sklearn中提供了高效的模型持久化模組joblib,將模型儲存至硬碟。 from sklearn.externals import joblib #lr是一個LogisticRegression模型 joblib.dump(lr, 'lr.model') lr =

Hive:開發使用變數的方法

目錄 在使用hive開發資料分析程式碼時,經常會遇到需要改變執行引數的情況,比如select語句中對日期欄位值的設定,可能不同時間想要看不同日期的資料,這就需要能動態改變日期的值。如果開發量較大、引數多的話,使用變數來替代原來的字面值非常有必要,本文總結了幾種可以向

JS刪除JSON陣列的元素的方法:delete和splice

最近的需求中,需要從JSON陣列中刪除元素,之前不太瞭解,特地查了一下,總結一下: splice(startIndex,count);這個方法用於從陣列的第startIndex位開始,刪除count個元素。 說明: 1、滿足條件的元素直接被刪除,腳標重信排 2、sta

Java從檔案路徑獲取檔名的幾方法

Java從檔案路徑中獲取檔名的幾種方法 舉例:String fName =” G:\Java_Source\navigation_tigra_menu\demo1\img\lev1_arrow.gif ” 方法一: ? View Code 

【Linux】自動獲取Ip的方法

       在安裝好Centos系統後,每次登陸上之後都需要通過手動方式進行網路連線,過於麻煩,因此改成自動連線的方式。                   &nb