2

QT Designer を使用して QMainWindow を作成しました。ご存知のように、デフォルトで statusBar があります。

デフォルトでは、QT Designer はそのオブジェクト名を「statusBar」としました。今、私が次のように電話しようとしたとき:-

statusBar()->showMessage(tr("File successfully loaded."), 3000);

プロトタイプを持つ関数があるので: QStatusBar * QMainWindow::statusBar () const

コンパイラにエラーが表示されます:-

エラー: 'statusBar' への参照があいまいです。

エラー: 候補は次のとおりです: QStatusBar* Ui_MainWindow::statusBar

エラー: QStatusBar*QMainWindow::statusBar() const

実は、私は「DANIEL MOLKENTIN による Qt アプリケーションの構築」という本を読んでいました。そして、本に記載されているのと同じコードをコンパイルしています。

上記のコードは mainwindows.cpp にあり、「mainwindow.h」と「ui_mainwindow.h」が含まれています...

これは QT4 のバグですか??

4

3 に答える 3

2

メソッド statusBar() の特定のバージョンを要求します。

Ui_MainWindow::statusBar()->showMessage(tr("File successfully loaded."), 3000);
于 2009-12-30T15:55:19.143 に答える
1

問題は、QMainWindowがUi_MainWindowを拡張し、statusBarメソッドも定義することです。

おそらく、これは以前のバージョンのQTには当てはまりませんでした。

于 2009-12-30T15:34:44.487 に答える
1

私もその本を読んで、同じ問題を抱えていました。決定は次のとおりです。

  1. メソッドを呼び出すQMainWindow::statusBar()
    QMainWindow::statusBar()->showMessage(tr("File successfully loaded."), 3000);

  2. *statusBarまたはからのポインターを使用しますUi_MainWindow
    Ui_MainWindow::statusBar->showMessage(tr("File successfully loaded."), 3000);

于 2012-03-09T08:58:13.453 に答える