通常我們使用QButtonGroup都是為了按鈕揮斥,選擇一個按鈕然后其他按鈕恢復非選擇狀態。
那么我們怎么通過代碼來設置當前選擇按鈕設為非選擇狀態呢?
可能你會說很簡單直接這樣
pButton->setChecked(false);
執行當前代碼后,會發現按鈕還是處於選擇狀態,其樣式並沒有改變。
這是為什么呢
QButtonGroup默認是互斥狀態,也就是里面只只能有一個按鈕處於選擇狀態。當選擇另一個按鈕另一個按鈕自動處於非選擇狀態
而且不能通過點擊當前選擇按鈕來取消當前按鈕的選擇狀態
必須通過一個按鈕的選擇來替換另一個按鈕
那應該怎么取消當前按鈕選擇狀態而不是以點擊另一個按鈕的形式呢
通過下面代碼即可實現
btnGroup.setExclusive(false);
pButton->setChecked(false);
btnGroup.setExclusive(true);
先取消QButtonGroup的互斥狀態,再設置按鈕為非選擇狀態即可實現想要的效果。