將QT中QRadioButton按鈕從選中狀態設置爲未選中狀態

筆者初學QT,在開放過程中,遇到了一個問題,比如說像下圖這樣的情況在這裏插入圖片描述假如要重新考試 那麼對於軟件來說,應該要做的一個措施就是,在用戶點擊Yes之後,將用戶所有的已經選中的答案的狀態設爲未選中狀態,那麼怎樣設置呢?我在想到這個問題的時候,也是不知所措,但這對於開發者來說便是一個需求,經過筆者不懈努力的查看文檔,才發現:這種按鈕你點擊之前,它的屬性是UnChecked,點擊以後,屬性會變成Checked,所以我們要做的就是,將它的屬性變成UnChecked.
在Button的方法裏面,有一個方法是setChecked(bool b)方法,這個方法的作用就是可以將它的屬性設置爲UnChecked屬性,於是我知道以後,覺得這不是挺簡單的嘛,於就有了下面這段代碼

//m_button是一個QRadioButton的數組
for(int i=0;i<10;i++)
{
	m_button[i]->setChecked(false);
}

我以爲這樣就結束了,但是我運行程序以後發現,事情並沒有這麼簡單,所有的按鈕並未像我所想的那樣,成爲未選中狀態,這就有點無語了,難道是setChecked方法沒用嗎,當然不是,後來我想,之所以沒效果,是因爲setChecked方法相當於是初始化,新建一個按鈕的時候,它的狀態默認的是UnChecked,而你初始的時候已經是Checked狀態了,所以即使調用了也不會改變它的值,瞅了一眼文檔,和setChecked方法緊挨着有一個setCheckable方法,作用便是,設置按鈕是否可選,如果是false,那麼這個按鈕你就點不了,既然一個按鈕不可選中,那麼它肯定是UnChecked狀態的
因此我們可以將代碼改成

for(int i=0;i<10;i++)
{
	m_button[i]->setCheckable(false);
	m_button[i]->setCheckable(true);
}

先將它設置爲不可選中,使它的屬性變爲UnChecked狀態,然後再將其設置爲可選中,因此這樣就能改變按鈕的狀態了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章