第二次没有显示菜单栏 window
Menubar is not showing on the second window
我正在尝试构建一个应用程序,在第一个 window 上获得一些用户输入后,弹出另一个 window 并显示一些结果。但是,即使菜单栏在第一个 window 上可见,菜单栏也不会出现在第二个 window 上。两个windows是不同classes的对象,但是两个classes都是继承自QMainWindow.
我尝试使用 menuBar() 函数,该函数 returns 是菜单栏的指针以添加菜单(这适用于第一个 window)。我还尝试创建一个新的菜单栏对象,但也没有帮助。
//MapWindow.h
class MapWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MapWindow(QWidget *parent = nullptr);
~MapWindow();
private:
QAction *vehicleAct;
QAction *missionAct;
QAction *backAct;
QMenu *toolMenu;
};
//MapWindow.cpp
MapWindow::MapWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MapWindow)
{
ui->setupUi(this);
setWindowState(Qt::WindowMaximized);
vehicleAct = new QAction("Vehicle Selection");
vehicleAct->setShortcut(Qt::CTRL + Qt::Key_V);
missionAct = new QAction("Mission Selection");
missionAct->setShortcut(Qt::CTRL + Qt::Key_M);
backAct = new QAction("Back");
backAct->setShortcut(Qt::CTRL + Qt::Key_B);
toolMenu = menuBar()->addMenu("Tools");
toolMenu->addAction(vehicleAct);
toolMenu->addAction(missionAct);
toolMenu->addAction(backAct);
}
MapWindow::~MapWindow() {
delete ui;
}
当我在同样继承自 QMainWindow 的 WelcomeWindow class 中使用相同的代码时,它工作得很好。然而,它甚至没有在这一秒显示菜单栏 window。
我设法找到了问题所在。我的一个小部件 (QScrollArea) 位于屏幕的左上角,由于某种原因它阻止了整个菜单栏的显示。将 QScrollArea 向下移动一点点就解决了这个问题。
我正在尝试构建一个应用程序,在第一个 window 上获得一些用户输入后,弹出另一个 window 并显示一些结果。但是,即使菜单栏在第一个 window 上可见,菜单栏也不会出现在第二个 window 上。两个windows是不同classes的对象,但是两个classes都是继承自QMainWindow.
我尝试使用 menuBar() 函数,该函数 returns 是菜单栏的指针以添加菜单(这适用于第一个 window)。我还尝试创建一个新的菜单栏对象,但也没有帮助。
//MapWindow.h
class MapWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MapWindow(QWidget *parent = nullptr);
~MapWindow();
private:
QAction *vehicleAct;
QAction *missionAct;
QAction *backAct;
QMenu *toolMenu;
};
//MapWindow.cpp
MapWindow::MapWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MapWindow)
{
ui->setupUi(this);
setWindowState(Qt::WindowMaximized);
vehicleAct = new QAction("Vehicle Selection");
vehicleAct->setShortcut(Qt::CTRL + Qt::Key_V);
missionAct = new QAction("Mission Selection");
missionAct->setShortcut(Qt::CTRL + Qt::Key_M);
backAct = new QAction("Back");
backAct->setShortcut(Qt::CTRL + Qt::Key_B);
toolMenu = menuBar()->addMenu("Tools");
toolMenu->addAction(vehicleAct);
toolMenu->addAction(missionAct);
toolMenu->addAction(backAct);
}
MapWindow::~MapWindow() {
delete ui;
}
当我在同样继承自 QMainWindow 的 WelcomeWindow class 中使用相同的代码时,它工作得很好。然而,它甚至没有在这一秒显示菜单栏 window。
我设法找到了问题所在。我的一个小部件 (QScrollArea) 位于屏幕的左上角,由于某种原因它阻止了整个菜单栏的显示。将 QScrollArea 向下移动一点点就解决了这个问题。