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:\Qt\4.8.6\plugins\styles目錄複製到可執行文件同級目錄下:
這樣fusion風格才能生效,如果是release發佈版,styles目錄只保留fusion.dll即可。