Error    1    error C2514: 'QLabel' : class has no constructors    E:\MyProject\vs2013Pro\C++Pro\TForFC\FindDialog\FindDialog\finddialog.cpp    7
Error    2    error C2512: 'QLineEdit' : no appropriate default constructor available    E:\MyProject\vs2013Pro\C++Pro\TForFC\FindDialog\FindDialog\finddialog.cpp    8
Error    3    error C2027: use of undefined type 'QLabel'    E:\MyProject\vs2013Pro\C++Pro\TForFC\FindDialog\FindDialog\finddialog.cpp    9
Error    4    error C2227: left of '->setBuddy' must point to class/struct/union/generic type    E:\MyProject\vs2013Pro\C++Pro\TForFC\FindDialog\FindDialog\finddialog.cpp    9
Error    5    error C2514: 'QCheckBox' : class has no constructors    E:\MyProject\vs2013Pro\C++Pro\TForFC\FindDialog\FindDialog\finddialog.cpp    11
Error    33    error C2065: 'QVBoxLayout' : undeclared identifier    E:\MyProject\vs2013Pro\C++Pro\TForFC\FindDialog\FindDialog\finddialog.cpp    33
Error    58    error C2027: use of undefined type 'QPushButton'    E:\MyProject\vs2013Pro\C++Pro\TForFC\FindDialog\FindDialog\finddialog.cpp    63

 

这些问题,其实是因为VS对创建的Qt项目源码有些问题不兼容所致,这个问题是因为预编译的头文件、库不能正常工作产生的,解决方法很简单,你看看预编译内容有没有这种形式:

#include <QtWidgets/QDialog>    这种形式在VS2013上,不会再此处报错,但这些库内容的使用就会产生问题啦!

很明显,这里改成:

#include <QtWidgets>
#include <QDialog>
即两个库分开写,问题就解决啦。另外,如果你在其它情况下遇到上述错误的某一个,请看一下是不是在某个类的定义上写错了什么。

有其他问题可直接评论或Email:lnan9407@hotmail.com