QT4到QT5移植出现的一些问题

转自:QT4到QT5移植出现的一些问题_西门子3gl qt5 许可证-CSDN博客

在上述作者基础上修改:

一、问题1:头文件的问题
1、QtGui/QApplication: No such file or directory

1.1错因

原因是Qt5源文件位置的改动

1.2解决

pro文件里,QT += core gui 改为 QT += core gui widgets

.h文件里,#include 改为#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 

总结:该问题已经遇到,考虑到与历史版本兼容,打开pro文件,增加下面一行

great二Than(QT_MAJOR_VERSION,4):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

6.error:qInstallMsgHandler was not declared

6.1错因

这是因为在QT4和QT5中这个函数的名称稍有区别。

6.2解决

#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) qInstallMessageHandler(myMessageOutput);

#else

qInstallMsgHandler(myMessageOutput);

#endif
二、问题2:编译问题
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
————————————————
版权声明:本文为CSDN博主「吻等离子」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_43445867/article/details/126002930

好文章:Qt应用和错误笔记_qinstallmsghandler' was not declared in this scope-CSDN博客

你可能感兴趣的:(qt,数据库,开发语言)