Qt 菜单栏多状态选择

示例

我们在使用Qt是经常能够遇到在菜单栏中设置多选一的情况,比如下图中的在语言菜单栏中我们选择中文或者英语来进行语言切换。

 这里写图片描述

1.在菜单栏中添加Qaction

这个我们可以在ui页面直接进行设置,按照红绿黄的顺序进行添加。

这里写图片描述

2.将Qaction设置为可以点击

在ui界面最下方Action Editor中会有所有Qaction,双击我们要选择的action,会有如下界面,我们将Checkable选中。

 这里写图片描述

3.用程序实现多选一

 这里写图片描述

在Action Editor菜单栏中找到我们想要选择的状态,右击转到槽,选择triggered,在信号槽中设置其他Action不能点击即可。
如下所示,这个是我设置中英文切换的程序,当选择中文的Action出发时,只需要设置英文setCheck(false)即可,这样就不会出现多个选项同时被选择的情况。

 1 void MainWindow::on_action_Chinese_triggered()
 2 {
 3     ui->action_English->setChecked(false);
 4 }
 5 
 6 
 7 void MainWindow::on_action_English_triggered()
 8 {
 9     ui->action_Chinese->setChecked(false);
10 }

4.设置初始状态

在程序开始的时候我们还需要设置默认选项,例如中英文切换的例子,只需要在程序开头设置为中文即可。

ui->action_Chinese->setChecked(true);
原文地址:https://www.cnblogs.com/ybqjymy/p/14577146.html