尝试在Qt中创建菜单时出错

时间:2013-04-17 14:54:41

标签: c++ qt

我收到错误:

  

无法调用成员函数'QMenuBar * QMainWindow :: menuBar()const'   没有对象

在这个函数中,任何想法为什么?

void TextEditor::createMenu(){
    menu = new QMenu(tr("&TextEditor"), this);
    QMainWindow::menuBar()->addMenu(menu);
    menu->addAction(tr("&Bold"), this, SLOT(setBold()), tr("Alt+B"));
    menu->addAction(tr("&Underline"), this, SLOT(setUnderline()), tr("ALT+U"));
    menu->addAction(tr("&Italics"), this, SLOT(setItalics()), tr("Alt+I"));
}

2 个答案:

答案 0 :(得分:3)

问题在于:

QMainWindow::menuBar()->addMenu(menu);
^^^^^^^^^^^^^

方法menuBar()不是静态方法,你不能在没有对象的情况下调用它。你必须从一个对象中调用它:

main_window_object->menuBar()->addMenu(menu);
... or ...
this->menuBar()->addMenu(menu);

答案 1 :(得分:0)

如果你的TextEditor类继承自QMainWindow,你可以这样调用它。