1 Qt4和Qt5支持的风格
由于公司有些老项目使用的是Qt4进行开发的,所以有些Qt5的特性是不具备的,例如fusion风格,分别打印下Qt4和Qt5支持的风格:
qDebug() << QStyleFactory::keys();
qt4:
("Windows", "WindowsXP", "WindowsVista", "Motif", "CDE", "Plastique", "Cleanlooks")
qt5:
("Windows", "WindowsXP", "WindowsVista", "Fusion")
由截图可以看出fusion风格更加简洁优美,Qt4如果想用的话需要手动编译插件。
2 插件编译
首先下载源码:fusion-qt4
直接编译是不行的,会报链接错误,我这里的环境是Qt4.8.6+vs2010,对fusion.pro文件进行如下增改:
修改:QTSRC = d:/Qt/4.8.6/src(这里根据自己的路径修改)
增加:CONFIG += build_all(同时编译debug和release版本)
修改:win32: LIBS += -lgdi32 -luser32(引入库)
编译完成后自动生成dll插件,如下图:
到此,集成就搞定了,可以使用了,再打印下支持的风格:
("fusion", "Windows", "WindowsXP", "WindowsVista", "Motif", "CDE", "Plastique", "Cleanlooks")
可见,Qt4现在能够使用fusion风格了。
3 程序打包
打包的时候不要忘了将D:Qt4.8.6pluginsstyles目录复制到可执行文件同级目录下:
这样fusion风格才能生效,如果是release发布版,styles目录只保留fusion.dll即可。