Qt 中如何隐藏 QMenu,隐藏顶部横栏的菜单

Qt 中如何隐藏 QMenu

Qt: 隐藏菜单QMenu

-----------------------------------------------------------

要点:

说明:Qt 5.14

1. 隐藏某个主菜单

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

注:menuXxx 为用户自己定义的菜单名称。

2. 隐藏整个菜单栏

this->menuBar()->setHidden(true);  // ok

注:menuBar() 为 Qt 官方定义的对象名称。

==================================

Qt 中如何隐藏 QMenu

我最近做的一个项目,需要根据 license 授权来控制软件的一些功能。有些菜单在某些状态下要隐藏起来。这么个简单的需求,折腾了半个多小时。

最开始想的很简单,认为就是一句话就能解决。QMenu 继承自 QWidget,QWidget 的显示隐藏很简单。

    ui->menu->hide();

结果这么写了后毫无反应。后来研究了一下,需要这么写:

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

为什么?

这里简单说说为啥用 menu->hide() 没反应。其实也不是没反应,而是没有用对地方。一个菜单,平时就是隐藏状态的,我们只有鼠标挪过去它才会显示出来。这时用 hide() 才可以隐藏起来。

原文链接:https://blog.csdn.net/liyuanbhu/article/details/119670533

Qt: 隐藏菜单QMenu

  http://www.cppblog.com/biao/archive/2009/09/16/96467.html

在Qt中,直接使用QMenu::hide()是不会隐藏这个菜单的,想要隐藏菜单,因为每个菜单都是与QAction联系起来的,所以使用QMenu::menuAction()->setVisible(false),这样,就可以把这个菜单隐藏起来。

> The menu is represented in the menu bar using a QAction. In order to
> hide the menu "menuTest1" you have to hide its associated action. You
> can access that action using QMenu::menuAction(), like this:
>
> menuTest1->menuAction()->setVisible(false);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值