基於QT的換膚整體解決方案(QSkinStyle)(提供Linux的XP風格)


 

基於QT的換膚整體解決方案(QSkinStyle)

    對QT這個成功的跨平台GUI庫,本身內置了對換膚功能的實現,比如cleanlooks、plastique等跨平台風格;還有一些是和平台相關的風格,比如WindowsXP、WindowsVista風格只能用在windows平台上,底層也會調用uxtheme.dll來實現windows的風格。
    QT內置的風格(qwindowsstyle、qmotifstyle、qcdestyle等),都是針對不同的風格定義(metric、look and fell等),通過畫點、畫線方式來實現的,這樣可以確保在不同的平台上,外觀都是一致的。可以預見的是,這樣的方法繁雜瑣碎,需要耐心和勇氣。
    比較好的方式是QStyleSheetStyle,它采用了類似CSS的方式來定義widget的外觀和widget在運行時對狀態的反映,簡單而且高效。對於windows平台,它依然無法對宿主窗口(標題條和邊框)進行換膚,除非進行特殊的處理。
    QSkinStyle是通過皮膚文件來實現QT換膚的,皮膚文件定義了widget的外觀和widget在運行時對狀態的反映,在不同的平台上,外觀都是一致的。還有一些特殊功能:比如宿主窗口換膚,狀態間切換時的動態效果,支持svg格式的皮膚圖片等。


    以下是QSkinStyle在windows和Linux上運行的換膚截圖。 

linux widget:

 

windows widget:

 

linux mdi:

 

windows mdi:

 

http://blog.csdn.net/slientman/article/details/5618950

http://www.qtcn.org/bbs/read.php?tid=62105

---------------------------------------------------------------------------------------------------------------------

開源版本:

http://www.cnblogs.com/feiyangqingyun/p/3915657.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM