1、需求是這樣,把n個按鈕放入QButtonGroup中,可以不選,也可以只選中一個。QButtonGroup默認exclusive屬性爲true,即單選。那麼問題來了,如何做到一個也不選呢,當前情況即使再單擊選中的按鈕,狀態也不會變爲unChecked。
我的做法是添加一個輔助按鈕AsstBtn放入QButtonGroup中,然後設置尺寸爲QSize(1,1),當我們不需要選中時,就把這個隱藏的按鈕設置爲check狀態,可以完美匹配需求~
2、在做上面需求的過程中,出了點小問題。在把AsstBtn放入QButtonGroup中時,我使用了QButtonGroup->addButton(AsstBtn, -1)。本意是想判斷QButtonGroup checkId時,有一個-1的判斷。但是卻發現這個checkId值不爲-1,應用到項目裏就有詭異的現象。發現這個問題後,我還是乖乖地用宏定義設置一個其他特殊值了。
在實際項目中,上面這種UI 利用輔助控件來打到對應目的的思路,我已經用到了很多次,幫助還是很大的,希望對大家有所幫助。
上碼~