1

我收到错误消息:

不能在没有对象的情况下调用成员函数 '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"));
}
4

2 回答 2

3

问题在这里:

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

方法menuBar()不是静态方法,没有对象就不能调用它。你必须从一个对象调用它:

main_window_object->menuBar()->addMenu(menu);
... or ...
this->menuBar()->addMenu(menu);
于 2013-04-17T15:06:50.477 回答
0

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

于 2013-04-17T15:12:15.247 回答