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 に答える