第二次没有显示菜单栏 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 向下移动一点点就解决了这个问题。