在我们没有设置菜单栏,想用代码的方式设置时,有时会碰到显示异常的问题,接下来我们就来看一下具体是什么情况
menuBar = new QMenuBar(this);
//this->setMenuBar(menuBar);
QMenu* menu = new QMenu("Test");
menuBar->addMenu(menu);
我们用指定父窗口的形式显示菜单栏,结果得到的效果是下面这个样子
此时的菜单栏添加的子菜单遮盖住了我们原本的图像logo,不是我们想要的效果
此时我们换一种方式,使用QMainWindows自带的设置方法
menuBar = new QMenuBar();
this->setMenuBar(menuBar);
QMenu* menu = new QMenu("Test");
menuBar->addMenu(menu);
得到的结果是这样的
此时菜单栏设置的非常自然,所以我们在使用菜单栏的过程中尽量避免直接设置父对象,使用父对象的添加函数或者直接在UI里添加。