基于QT的换肤整体解决方案(QSkinStyle)(提供Linux的XP风格)

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于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

以上是关于基于QT的换肤整体解决方案(QSkinStyle)(提供Linux的XP风格)的主要内容,如果未能解决你的问题,请参考以下文章

一个简单的换肤code

前端换肤方案

Android 手写实现插件化换肤 兼容Android10 Android11

Android 手写实现插件化换肤框架 兼容Android10 Android11

iOS客户端节日换肤方案探究

Android-skin-support: 实现原理