我正在制作一个QToolBar,其中包含一些动作,每个动作都是“可检查的”(也就是说,我在创建动作后对每个动作调用setCheckable(true),这使得按钮处于向下状态点击之后)。
我能想到“取消选中”其他按钮的唯一方法是挂钩每个按钮的触发信号,并在选中给定按钮时取消选中其他按钮。
有更好的方法吗?
答案 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