基于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风格)的更多相关文章
- qt之窗口换肤(一个qss的坑:当类属性发现变化时需要重置qss,使用rcc资源文件)
1.相关文章 Qt 资源系统qt的moc,uic,rcc命令的使用 2.概要 毕业两年了,一直使用的是qt界面库来开发程序,使用过vs08.10.13等开发工具,并安装了qt的插件,最近在做客户 ...
- qt之窗口换肤
1.相关文章 Qt 资源系统qt的moc,uic,rcc命令的使用 2.概要 毕业两年了,一直使用的是qt界面库来开发程序,使用过vs08.10.13等开发工具,并安装了qt的插件,最近在做客户 ...
- Android主题换肤 无缝切换
2016年7月6日 更新:主题换肤库子项目地址:ThemeSkinning,让app集成换肤更加容易.欢迎star以及使用,提供改进意见. 更新日志: v1.3.0:增加一键切换切换字体(初版)v1. ...
- Android App插件式换肤实现方案
背景 目前很多app都具有换肤功能,用户可以根据需要切换不同的皮肤,为使我们的App支持换肤功能,给用户提供更好的体验,在这里对换肤原理进行研究总结,并选择一个合适的换肤解决方案. 换肤介绍 App换 ...
- Android 打造自己的个性化应用(一):应用程序换肤主流方式的分析与概述
Android平台api没有特意为换肤提供一套简便的机制,这可能是外国的软件更注重功能和易用,不流行换肤.系统不提供直接支持,只能自行研究. 换肤,可以认为是动态替换资源(文字.颜色.字体大小.图片. ...
- duilib入门之贴图描述、类html文本描述、动态换肤、Dll插件、资源打包
转载自duilib入门文档 贴图描述: Duilib的表现力丰富很大程度上得益于贴图描述的简单强大.Duilib的贴图描述分为简单模式和复杂模式两种. 简单模式使用文件名做为贴图描述内容,在这种方式下 ...
- ASP.NET MVC扩展自定义视图引擎支持多模板&动态换肤skins机制
ASP.NET mvc的razor视图引擎是一个非常好的.NET MVC框架内置的视图引擎.一般情况我们使用.NET MVC框架为我们提供的这个Razor视图引擎就足够了.但是有时我们想在我们的项目支 ...
- VS中基于对话框的MFC利用换肤改变边框颜色及格式
第一版本: http://ishare.iask.sina.com.cn/f/13836420.html?from=like 2. http://www.cnblogs.com/phinecos/ar ...
- QT自定义精美换肤界面
陆陆续续用QT开发过很多项目,也用QT写过不少私活项目,也写过N个工具,一直梦寐以求能像VC一样可以很方便的有个自定义的界面,QSS的强大让我看到了很好的希望,辗转百度谷歌无数次,一直搜索QT相关的换 ...
随机推荐
- CSS各个浏览器Hack的写法
Hack是针对不同的浏览器去写不同的CSS样式,从而让各浏览器能达到一致的渲染效果,那么针对不同的浏览器写不同的CSS CODE的过程,就叫CSS HACK,同时也叫写CSS Hack.然后将Hack ...
- 常用ASCII 码对照表
目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information Interchange,美国标准 ...
- How to understand ReferenceGroup control on Form[AX2012]
在AX2012的Form开发中,微软引入了新的控件ReferenceGroup,它用在Lookup其他表RecId的时候显示更人性化的字段,它的使用还必须从表的索引说起.AX2012的表有这些索引(h ...
- openerp学习笔记 计算字段支持搜索
示例1: # -*- encoding: utf-8 -*-import poolerimport loggingimport netsvcimport toolslogger = netsvc.Lo ...
- oracle-11g创建用户名的时候默认区分大小写
oracle11g-11.2.0.3.0 - 64bit oracle-11g创建用户名的时候默认区分大小写 设置不区分大小写: alter system set sec_case_sensitive ...
- STM32普通定时器实现延时函数
/* SystemFrequency / 1000 1ms中断一次 * SystemFrequency / 100000 10us中断一次 * SystemFrequency / 1000000 1u ...
- ARPA
ARPA是英文Advanced Research Projects Agency的缩写,代表美国国防部高级研究计划署.是美国国防部高级研究计划管理局因军事目的而建立的,开始时只连接了4台主机,这便是只 ...
- 【js】随机数
<script> function GetRandomNum(Min,Max){ var Range = Max - Min; var Rand = Math.random() ...
- 【http】http/1.1 八种请求方式
OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法.也可以利用向Web服务器发送'*'的请求来测试服务器的功能性. HEAD 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回 ...
- iOS10 关于推送-b
最近在研究iOS10关于推送的新特性, 相比之前确实做了很大的改变,总结起来主要是以下几点: 推送内容更加丰富,由之前的alert 到现在的title, subtitle, body 推送统一由tri ...