令人困惑的gcc抱怨Qt4 setValidator的使用

时间:2010-08-25 21:14:29

标签: c++ gcc qt4 compiler-errors

我们很难理解为什么gcc会在我们的应用中抱怨这一行:

doubleFrom->setValidator(new QDoubleValidator(doubleFrom));

抱怨这些:

error: expected type-specifier before 'QDoubleValidator'
error: expected `)' before 'QDoubleValidator'
error: no matching function for call to 'QLineEdit::setValidator(int*)'
candidates are: void QLineEdit::setValidator(const QValidator*)

(我已经删除了文件,行号的冗长路径。)

是的,setValidator希望得到一个const QValidator *,这就是我们在这一行源代码中所做的。为什么gcc想要过早地看到')',并认为我们正在为setValidator提供一个int *?

当然,“昨天这个编好了,我们没有改变任何东西。真的!”

1 个答案:

答案 0 :(得分:5)

这是非常基本和明显的,我知道,但是你#include <QDoubleValidator>了吗? “在应该命名类型&gt;的标识符之前的预期类型说明符”几乎总是意味着类型定义不可见。