我正在Qt中使用C++在菜单栏(menuBar)中构建一个小程序,我想知道当某个变量被激活时如何灰显(例如禁用)菜单项.可能吗?
Tim*_*hko 15
如果您知道相应QAction的索引:
QMenu::actions.at(i).setEnabled(false);
Run Code Online (Sandbox Code Playgroud)
PS正如下面提到的那样,setEnabled(bool)并且setDisabled(bool)是插槽(也是如此toggle()),因此它们可以连接到指示需要更改动作可用性的信号.
寻找动作的索引并不一定方便.如果您使用QtCreator的表单编辑器构建了界面,那么您将对每个菜单项执行操作.它们的名称基于您首先给予操作的文本.例如,如果以交互方式输入标题为Foo Bar的菜单项,则会为您创建名为actionFoo_Bar的操作.只需在代码编辑器中键入ui-> action,并观察QtCreator将提出的"名称完成".
在这种情况下,我会考虑这样的调用:
ui->actionFoo_Bar.setEnabled(false);
Run Code Online (Sandbox Code Playgroud)
您甚至可以使菜单项消失
ui->actionFoo_Bar.setVisible(false);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12017 次 |
| 最近记录: |