Important: Please read the Qt Code of Conduct -

Menu not showing up in menuBar

  • Hello,

    I created the default app from the Creator template Qt Widget Project/Qt Gui Application, and then tried to add a File menu to the menuBar. The File menu did not show up. What's wrong, it seems so simple?

    As you can see from the code, I tried to get the menuBar in two different ways.

    @#include <QMainWindow>

    namespace Ui {
    class MainWindow;

    class MainWindow : public QMainWindow

    explicit MainWindow(QWidget *parent = 0);

    QMenu *fileMenu;
    QAction *quitAction;

    Ui::MainWindow *ui;

    @#include "mainwindow.h"
    #include "ui_mainwindow.h"

    MainWindow::MainWindow(QWidget *parent) :
    ui(new Ui::MainWindow)

    quitAction = new QAction("&Quit", this);

    // fileMenu = menuBar()->addMenu(tr("&File"));
    fileMenu = ui->menuBar->addMenu(tr("&File"));
    connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));

    delete ui;


    @#include <QtCore/QVariant>
    #include <QtGui/QAction>
    #include <QtGui/QApplication>
    #include <QtGui/QButtonGroup>
    #include <QtGui/QHeaderView>
    #include <QtGui/QMainWindow>
    #include <QtGui/QMenuBar>
    #include <QtGui/QStatusBar>
    #include <QtGui/QToolBar>
    #include <QtGui/QWidget>


    class Ui_MainWindow
    QWidget *centralWidget;
    QMenuBar *menuBar;
    QToolBar *mainToolBar;
    QStatusBar *statusBar;

    void setupUi(QMainWindow *MainWindow)
        if (MainWindow->objectName().isEmpty())
        MainWindow->resize(400, 300);
        centralWidget = new QWidget(MainWindow);
        menuBar = new QMenuBar(MainWindow);
        menuBar->setGeometry(QRect(0, 0, 400, 22));
        mainToolBar = new QToolBar(MainWindow);
        MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar);
        statusBar = new QStatusBar(MainWindow);
    } // setupUi
    void retranslateUi(QMainWindow *MainWindow)
        MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0, QApplication::UnicodeUTF8));
    } // retranslateUi


    namespace Ui {
    class MainWindow: public Ui_MainWindow {};
    } // namespace Ui


  • I just copied your code to my project and it works perfectly.

  • Try doing a rebuild of your project. Sounds like you have a stale build.

  • Thanks guys, still no luck. I deleted the build folder and user settings and rebuilt. I guess I'll need to start with an existing demo app where the menus work and add in my app code.

  • you could zip your complete project and put it to pastebin, but otherwise, I see no chance to look for a bug, as the posted code works.

  • Works for me too.

  • I had the same issue of the menu bar not showing (config: Qt 5.2 , ubuntu 13.10). This trick solved the issue:

  • [quote author="Loulou" date="1387722347"]I had the same issue of the menu bar not showing (config: Qt 5.2 , ubuntu 13.10). This trick solved the issue:

    Thank you that great & simple solution. Worked for me!

  • Thanks,

    I encountered the same problem when I created a new QMainwindow project using the native MenuBar and adding some items to it.
    The MenuBar does not appear after running the program, and appears only when double clicking the windoow to make it full screen.
    the code line:
    @menuBar()->setNativeMenuBar(false);// Trick to see native MenuBar@
    You can say it is the trick to see the native MenuBar, but for me it has no sense especially the false thing. The question still remains why it does not appear in-spite automatic generation?

  • [quote author="Loulou" date="1387722347"]I had the same issue of the menu bar not showing (config: Qt 5.2 , ubuntu 13.10). This trick solved the issue:

    Thank you, It also worked for me on mac os !

  • Where would I add this code to get it to work? Not sure which file it has to go in. New to QT and any help would be appreciated :)

  • Qt Champions 2017

    which platform you are trying ? If Ubuntu and Mac, platform do some intelligence. Just try to add few more actions like QAction("David") , QAction("Dheeru") like this. It will start showing up. Since you are default "Quit" and "Quit" is by default available. So it may not be showing up.

  • @DavidMc Hi, add the following to your main.cpp:


    Same effect, just for all your menu bars.

  • @willy27 It also affect my code.

  • @willy27 Your temporary fix worked quite well. It's not pretty, but it does the job!!

  • I just ran into the same problem trying to follow the Qt5 tutorial from on MacOS Catalina (no menu bar mystery after building), which has no warnings about differences between platforms. This saved me some time before I delve into macextras

  • Hi guys, very new into Qt, just got this workin on high sierra/PyCharm/PyQt 5.15.3. My menubar is called "menubar" => self.menubar.setNativeMenuBar(False)
    ...if you try to solve it from python side. Thanks a bunch!

Log in to reply