我使用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中的错误吗?
答案 0 :(得分:2)
要求提供方法statusBar()的特定版本:
Ui_MainWindow::statusBar()->showMessage(tr("File successfully loaded."), 3000);
答案 1 :(得分:1)
问题是QMainWindow扩展了Ui_MainWindow,它也定义了statusBar方法。
在以前的QT版本中可能并非如此。
答案 2 :(得分:1)
我也读了那本书并遇到了同样的问题。决定是:
调用方法QMainWindow::statusBar()
QMainWindow::statusBar()->showMessage(tr("File successfully loaded."), 3000);
或使用来自*statusBar
的指针Ui_MainWindow
Ui_MainWindow::statusBar->showMessage(tr("File successfully loaded."), 3000);