Qt4.7 升級至 Qt5.3遇到的項目編譯不過問題

1、  #include <QtGui/QApplication> ---> No such file or directory 問題的解決 (原因是Qt5源文件位置的改動)
1).pro文件中,在 QT       += core gui 下面一行添加
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
2)在mian.cpp文件中將#include <QtGui/QApplication>
修改爲 #include <QApplication>

2、 error: 'UnicodeUTF8' is not a member of 'QApplication'
         Dialog->setWindowTitle(QApplication::translate("Dialog", "hexMerger", 0, QApplication::UnicodeUTF8));
                 
該問題是由於UnicodeUTF8 在 Qt5.3中已被棄用,解決辦法是
將 QApplication::UnicodeUTF8 這個參數刪除,如下示:
Dialog->setWindowTitle(QApplication::translate("Dialog", "hexMerger", 0));

其它一些思路:

1、Qt4的項目filebrowser,到qt5的編譯器下面,結果編譯出一堆的錯誤。

第一個想法是新建一個QT5的工程,對比工程.pro文件,然後看包含的namespace,發現以前的 widget,QFileSystemModel,QPushButton等都不在QtGui這個namespace下面了,這些全部遷移到一個新的命名 空間QtWidgets下面了,所以和widget有關的改下頭文件就OK啦。

 

2、有個辦法可以通用,還是看幫助文檔,主要看以前用的哪些namespace在新庫中是在哪裏,比如以前經常用的QtGui,查看幫助文檔發現以下一句話:

The Qt GUI module providesclasses for windowing system integration, event handling, OpenGL and OpenGL ESintegration, 2D graphics, basic imaging, fonts and text. 

說明qt gui包含了這些模塊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章