我已经在我的应用程序中的MainWindow
之上建立了一个QMenu MainMenu
。每个人都习惯了,我有以下QMenu
主菜单:
文件-编辑- SuperHeavyExpertMenus -设置-帮助
我想隐藏子树SuperHeaverExpertMenus
最初,在程序启动,因为它包含了很多设置,这可能会混淆初学者用户。
我想用SuperHeavyExpertMenu
显示子树,例如,当Settings中的复选框为true时。
我可以隐藏QMenu
s的子QActions
,参见QAction:setVisible(false)
。但我可以为QMenu
?
是否有办法隐藏QMenu
?
如果我理解正确的话,你解决问题的方法是这样的:
ui->menuYouWantToHide->menuAction()->setVisible(false);
Qmenu没有setVisible()
或hide()
,但您可以更改标题:
ui->MenuYouWantToHide->setTitle("");
这将删除标题,因此,在您的GUI中构成按钮的"Action"。
基于qaction的小部件的可见性和启用性可以通过与它们连接的QAction
对象来控制。
Qt文档,即使是最新版本也从公共访问器列表中省略了多个访问器函数。相反,它们被引用在相关的getter下,例如QAction::setVisible
被列在QAction::isVisible
topic下。