2010-07-01 77 views
6

我正在尋找一個QToolBar,它裏面有幾個動作,每個動作都是「可檢查」的(也就是說,在創建它之後,我會在每個動作上調用setCheckable(true),這會在按鈕處於關閉狀態之後點擊它)。製作QToolBar「可選」QToolButtons的最佳方式,其中只能有一個按鈕可以一次檢查?

我能想到的「取消選中」其他按鈕的唯一方法是掛鉤到每個按鈕的觸發信號,並在選中某個按鈕時取消選中其他按鈕。

有沒有更好的方法?

回答

11

創建一個QActionGroup並讓它成爲您的操作的父母。這QActionGroup將維護其子女的狀態。

QActionGroup *anActionGroup = new QActionGroup(yourParentWidget); 
QAction* action1 = new QAction("Action 1", anActionGroup); 
QAction* action2 = new QAction("Action 2", anActionGroup); 
QAction* actionN = new QAction("Action N", anActionGroup); 
action1->setCheckable(true); 
action2->setCheckable(true); 
actionN->setCheckable(true); 

// Add these action to the tool bar 
+4

這應該工作,對於n專用按鈕的一般情況,也有QButtonGroup。 – 2010-07-01 08:31:16