0、前言:
本文根據吳健老師的QT教程所寫,屬於學習筆記,僅爲備忘及心得,如有錯誤,還望指出,感謝。
1、Radio Button的運用
下圖1爲ui界面,Radio Button作爲性別單選使用
然後使用Ctrl按鍵,選中兩個Radio Button,右鍵在彈出的對話框中心選中Assign to button group——》New button group,如下圖2所示。
在UI界面的右側的對象瀏覽器(Object Inspector)中可找到新建的ButtonGroup,並改名爲SexGroup,如下圖3所示
並在屬性編輯器中將其設置爲互斥(exclusive),如下圖4所示,完成後編譯UI界面
,
最後再CPP界面,獲取單選按鈕對應的文本,代碼如下
//獲取單選按鈕對應文本
QString sex= this->ui->SexGroup->checkedButton()->text();
具體原理如Help文檔所示,大致意思爲返回按鍵是否被按下,如果不是單選互斥按鈕,則返回最後一個被按下的按鈕。
此外,如需要將默認勾選修改,需要在按鍵的屬性編輯框中,對checked一項進行勾選,注意,在建立RadioButton Group,並保持互斥關係後,兩者UI界面默認勾選也遵循互斥原則。默認狀態可存在兩者均不勾選,單獨勾選一個的狀態。
2、Check Box的運用
check Box的使用方法與Radio Button 類似,先對其新建按鍵組,是否互斥看具體要求,我們這裏新建其爲InsGroup
然後在CPP界面使用以下代碼進行獲取
首先,需要獲取多選按鈕列表,再使用InsGroup長度屬性,獲取多選按鈕組裏面按鈕的數量,遍歷每個按鈕是否被按下,注意,需要包含頭文件
QList<QAbstractButton *>ins_list=this->ui->InsGroup->buttons();
QString ins;
for(int i=0;i<ins_list.length();i++)
{
QAbstractButton * che = ins_list.at(i);//C++中at類似數組,i爲數組內編號
if(che->isChecked())//檢測是否被按下
{
ins+=che->text()+",";
}