【问题标题】:Not possible to hide a QMenu object QMenu::setVisible()?无法隐藏 QMenu 对象 QMenu::setVisible()?
【发布时间】:2015-09-03 12:30:33
【问题描述】:

我在我的应用程序中的MainWindow 之上建立了一个QMenu MainMenu。大家都习惯了,我有以下QMenu主菜单:

文件 - 编辑 - SuperHeavyExpertMenus - 设置 - 帮助

我想在程序启动时隐藏子树SuperHeaverExpertMenus,因为它包含很多设置,这可能会使初学者用户感到困惑。

我想用SuperHeavyExpertMenu 显示那个子树,例如,当设置中的复选框为真时。

我可以隐藏上面QMenu 的孩子QActions,与QAction:setVisible(false) 竞争。但我可以为QMenu 做到这一点?

有没有办法隐藏QMenu

【问题讨论】:

  • 隐藏Menu action
  • @Amartel 我看不到用它隐藏 QMenu 的可能性吗?我对 QActions 不感兴趣。我已经能够隐藏 QActions。但是 QMenu 在主菜单中仍然可见。我想隐藏一个 QMenu。
  • @RalfWickum 在这种情况下,“动作”一词仅表示“可以进入菜单的东西”。来自 QMenu 描述:“有四种操作项:分隔符、显示子菜单的操作、小部件和执行操作的操作。” SuperHeavyExpertMenus 将是第二个“操作”种。
  • 不是“菜单的操作”。 菜单操作。我发布了一个文档链接。跟着它。
  • 是的,实际上,myMenu->menuAction()->setvisible(false) 解决了我的问题。

标签: qt qt5 qt5.3 qmenu qaction


【解决方案1】:

如果我正确理解了您的问题,您可以解决的方法是这样的:

ui->menuYouWantToHide->menuAction()->setVisible(false);

希望对你有用。

【讨论】:

  • menuAction.setVisible(False) 在 python pyqt5 中工作。
【解决方案2】:

Qmenu 没有setVisible()hide(),但您可以改为更改标题:

ui->MenuYouWantToHide->setTitle("");

这将删除标题,因此构成 GUI 中的按钮的“操作”。

【讨论】:

  • 确实如此:menu->setTitle("") 就像 menu->hide()。然后,当您稍后设置标题时,菜单会显示其中的所有操作。
猜你喜欢
  • 2012-11-22
  • 2014-11-17
  • 1970-01-01
  • 2020-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多