Best way to make a QToolBar of “checkable” QToolButtons where only one of the buttons can be checked at a time?

StackOverflow https://stackoverflow.com/questions/3154506

  •  01-10-2019
  •  | 
  •  

Question

I'm looking to make a QToolBar with a few actions in it, each of which is "checkable" (that is, I call setCheckable(true) on each action after creating it, which leaves the button in the down state after clicking it).

The only way I can think of "unchecking" the other buttons is to hook into each button's triggered signal and uncheck the other buttons when a given button is checked.

Is there a better way?

Was it helpful?

Solution

Create a QActionGroup and let it be the parent of your actions. This QActionGroup will maintain the states of its children.

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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top