1、QtGui/QApplication: No such file or directory
1.1错因
原因是Qt5源文件位置的改动
1.2解决
pro文件里,QT += core gui 改为 QT += core gui widgets
.h文件里,#include
2、fatal error: QtGui/QAction: No such file or directory
2.1错因:
在Qt4中,QAction是QtGui模块的一部分。在Qt5中,它是QtWidgets模块的一部分。
2.2解决:
最好的选择是在包含标题时不指定模块名称。将
#include
改为#include
3、fatal error: QSound: No such file or directory #include
解决:
打开pro文件,在里面包含 :
QT += multimedia
4、提示error:’setCodecForTr’ is not a member of ‘QTextCodec’,error: 'setCodecForCStrings' is not a member of 'QTextCodec'等错误
4.1错因:
由于Qt版本更新速度快,更新的同时有了许多的改动,在Qt5版本以前,很多人习惯用下面这三行(只要牵扯到中文,这三行就来了):
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
但是在Qt5中取消了:
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
4.2解决:
在程序中,main函数里将这两行代码注释掉就可以了.
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
//QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
//QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
5. error: invalid use of incomplete type 'class QWidget'
5.1 错因
这是因为在QT5中,类继承QWidget需要添加头文件
5.2解决
添加头文件
#include
1、UnicodeUTF8' is not a member of 'QApplication
修改:
setText(QApplication::translate("MainWindow", "&Quitar", 0, QApplication::UnicodeUTF8));
为:
setText(QApplication::translate("MainWindow", "&Quitar", 0);
更多错误gTransition from Qt 4.x to Qt5 - Qt Wiki