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

C++ 尝试在Qt中创建菜单时出错,c++,qt,C++,Qt,我得到一个错误: 无法调用成员函数“QMenuBar*QMainWindow::menuBar()const” 毫无目的 在这个函数中,你知道为什么吗 void TextEditor::createMenu(){ menu = new QMenu(tr("&TextEditor"), this); QMainWindow::menuBar()->addMenu(menu); menu->addAction(tr("&Bold"), this,

我得到一个错误:

无法调用成员函数“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"));
}
问题在于:

QMainWindow::menuBar()->addMenu(menu);
^^^^^^^^^^^^^
方法
menuBar()
不是一个静态方法,在没有对象的情况下不能调用它。您必须从对象调用它:

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

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

TextEditor是QMainWindow吗?您应该只能调用menuBar,而不需要限定符。QMainWindow::menuBar()可以被视为对静态方法的调用。