Лучший способ сделать QToolBar из «проверяемых» QToolButtons, где одновременно может быть проверена только одна из кнопок? - PullRequest
7 голосов
/ 01 июля 2010

Я хочу создать QToolBar с несколькими действиями, каждое из которых «проверяемое» (то есть я вызываю setCheckable (true) для каждого действия после его создания, что оставляет кнопку в выключенном состоянии).после нажатия на нее).

Единственный способ, которым я могу думать о "снятии отметки" с других кнопок, это подключиться к сигналу, вызываемому каждой кнопкой, и снять флажки с других кнопок, когда данная кнопка отмечена.Есть ли лучший способ?

1 Ответ

13 голосов
/ 01 июля 2010

Создайте 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
...