制作QToolBar的“可检查”QToolButtons的最佳方法,其中一次只能检查其中一个按钮?

时间:2010-07-01 01:07:53

标签: c++ qt qt4 qtoolbar

我正在制作一个QToolBar,其中包含一些动作,每个动作都是“可检查的”(也就是说,我在创建动作后对每个动作调用setCheckable(true),这使得按钮处于向下状态点击之后)。

我能想到“取消选中”其他按钮的唯一方法是挂钩每个按钮的触发信号,并在选中给定按钮时取消选中其他按钮。

有更好的方法吗?

1 个答案:

答案 0 :(得分:13)

创建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