Qt关于对菜单栏隐藏的完美解决方案

接触这么久的Qt开发了,感觉Qt自身的库非常的强大,并且在跨平台性上给我带来了太多惊喜。

上次在CSDN论坛看见一个关于Qt开发读写USB的贴子,而且还需要跨平台,有大牛的回复让我很是受益,特这几天正专心学习Qt库呢,以此为背景。

在看到Widget和Menu的时候突然发现,关于Qt菜单栏的隐藏问题有了新的解决方案。

首先需要澄清一点的是,QMenu继承至QWidget,看到这儿的时候很多人都会这样做

menuTest->hide();

可是当你试着编译链接运行后,menuTest是不能隐藏的,问题在哪呢????

我们继续往后看……QMenuBar,相信大家都很熟悉,4.8帮助文档上时这样描述的QMenuBar中的一段描述



看到这里,或许你应该知道些猫腻了,没错,菜单是关联到了QAction上,也就是说想要隐藏菜单,需要对其Action进行操作

//QMenu和QAction的public slots
QMenu::menuAction();
QAction::setVisible(bool);

//具体实现
menuTest->menuAction()->setVisible(false);

通过这样的方式你就能完全隐藏Menu。

关于隐藏之后工作区的格式问题,经我测试,发现在menuTest隐藏后,工作区会重新绘制,菜单栏区域被消除。


  • 8
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值