转载自:http://blog.csdn.net/lainegates/article/details/46314227
qt5比qt4有了一些进步,而且从qt4向qt5迁移难度不大,具体详见 http://doc.qt.io/qt-5/qt5-intro.html 。总之,早点学习有好处。
本文总结果我在迁移过程中的一些心得。
一、qt4与qt5配置上不同
1.1常用环境变量。
qt5 中常用的module大致有Qt5Core, Qt5DBus, Qt5Gui, QtWidgets, Qt5Multimedia, Qt5Network, Qt5OpenGL, Qt5Qml Qt5Quick, Qt5WebKit 等。
每一个module 几个固定的变量,以Qt5Widgets为例,它有:
2.2 文件迁移
qt4的Gui模块中包含了所有的图形控件,在qt5中全部迁移到了Qt5Widgets。相应的,#include<QtGui/QLabel>就要替换为#include<QtWidgets/QLabel>
二、使用实例
了解了常见变量,剩下的就好办了。在qt5中,将各个模块分离,find_packages也就相应分离查找,这个只用到自己所需的,可减少结果文件的大小。
qt官网推荐使用cmake 2.8.11以上版本的cmake,本文也只讲解这个版本下qt5的使用。仍以Qt5Widgets为例:
如果使用了Qt5Core,一定要include_directories(${Qt5Core_INCLUDE_DIRS}), 否则会找不到相关头文件(mac上)
三、引入文件
qt5中加大了对引入文件(IMPORTED targets)的应用,引入文件包括所有module相关文件(头文件、库等),方便使用。
3.1 属性
用户可以通过引入文件访问属性,如:
3.2 配置
用户也可以使用引入文件配置configure过程。如将configure配置为release:
3.3 插件
qt5中 Qt5Network, Qt5SQL, Qt5GUI, and Qt5Widgets 有插件,通过引入文件就可以方便的访问:
四、宏
宏这一部分变化很小,只是将宏命名中的qt4变为qt5。以下不列举宏说明,只列举宏位置。
Qt5Core包含:qt5_wrap_cpp、qt5_add_resources、qt5_generate_moc、qt5_use_modules
Qt5Widgets包含:qt5_wrap_ui
Qt5DBus包含:qt5_add_dbus_interface、qt5_add_dbus_interfaces、qt5_add_dbus_adaptor、qt5_generate_dbus_interface
Qt5LinguistTools包含: qt5_create_translation、qt5_add_translation
五、细节变化
参照官网:https://wiki.qt.io/Transition_from_Qt_4.x_to_Qt5