[SOLVED]menuBar() not found?

  • I was making a small test program, and came across an error that said that it can't find menuBar. here is the following code:

    #include "mainwindow.h"
    #include <QApplication>
    #include <QtWidgets>

    int main(int argc, char *argv[])
    QApplication a(argc, argv);
    QMainWindow win;
    QMenu *menu = menuBar()->addMenu(tr("&File"));
    QHBoxLayout *box = new QHBoxLayout;

    return a.exec();

    any help is greatly appreciated

  • @manny said:
    You are calling global menuBar() function which does not exist

    QMenu *menu = menuBar()->addMenu(tr("&File"));

    you probably wanted

    QMenu *menu = win.menuBar()->addMenu(tr("&File"));

  • ok, i think i understand

  • sorry, but can someone also explain what is the difference between:

    action = menu->addSeparator()



    I understand that in the first one action is assigned to separator, however they both do the same job, so what is the advantage of using one over the other. Is it maybe in the first one you can possibly hide the separator if you wanted to, or do something else to it?

    any help is, again, greatly appreciated

  • Qt Champions 2017

    Yes in
    action newaction= menu->addSeparator()
    you get newaction to set other properties on if needed, where as
    you have no returned action to play with.

  • thanks for clearing that up

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.