我使用QT Designer創建了一個QMainWindow。 正如我們所知,它默認情況下有statusBar。爲什麼會出現這個錯誤:對'statusBar'的引用是不明確的..即將到來?這是一個錯誤?
默認情況下,QT Designer的對象名爲「statusBar」。現在 ,當我試圖調用,如: -
statusBar()->showMessage(tr("File successfully loaded."), 3000);
,因爲我們有原型的函數:QStatusBar *的QMainWindow ::狀態欄。()const的
編譯器顯示錯誤: -
error: reference to ‘statusBar’ is ambiguous.
error: candidates are: QStatusBar* Ui_MainWindow::statusBar
error: QStatusBar*QMainWindow::statusBar() const
其實,我正在關注一本書「DANIEL MOLKENTIN構建Qt應用程序的藝術」。我正在編寫書中給出的相同代碼。
上面的代碼是在mainwindows.cpp,我已經列入「mainwindow.h」在它&「ui_mainwindow.h」 ......
這是QT4的錯誤?
你有一個成員*變量*名稱來調用方法
QMainWindow::statusBar()
QMainWindow::statusBar()->showMessage(tr("File successfully loaded."), 3000);
或使用指針
*statusBar
'statusBar'和一個方法d名稱爲'statusBar'。編譯器不知道使用哪一個。但是,它們都駐留在不同的類中:'Ui_MainWindow'和'QMainWindow'。我想知道這些類之間有什麼關係?如果一個人從另一個人那裏繼承,那麼怎麼沒有恥辱隱藏?如果他們不相關,怎麼會有衝突?你確定自己沒有添加「陌生」的東西嗎?多重繼承? – AnT 2009-12-30 23:38:58