接触这么久的Qt开发了,感觉Qt自身的库非常的强大,并且在跨平台性上给我带来了太多惊喜。
上次在CSDN论坛看见一个关于Qt开发读写USB的贴子,而且还需要跨平台,有大牛的回复让我很是受益,特这几天正专心学习Qt库呢,以此为背景。
在看到Widget和Menu的时候突然发现,关于Qt菜单栏的隐藏问题有了新的解决方案。
首先需要澄清一点的是,QMenu继承至QWidget,看到这儿的时候很多人都会这样做
menuTest->hide();
可是当你试着编译链接运行后,menuTest是不能隐藏的,问题在哪呢????
我们继续往后看……QMenuBar,相信大家都很熟悉,4.8帮助文档上时这样描述的
看到这里,或许你应该知道些猫腻了,没错,菜单是关联到了QAction上,也就是说想要隐藏菜单,需要对其Action进行操作
//QMenu和QAction的public slots
QMenu::menuAction();
QAction::setVisible(bool);
//具体实现
menuTest->menuAction()->setVisible(false);
通过这样的方式你就能完全隐藏Menu。
关于隐藏之后工作区的格式问题,经我测试,发现在menuTest隐藏后,工作区会重新绘制,菜单栏区域被消除。