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

摘要:
基于QT的整体换肤解决方案为QT内置了换肤功能,这是一个成功的跨平台GUI库,如cleanslooks、plasticque和其他跨平台风格;还有一些与平台相关的样式,如Windows XP和Windows Vista,它们只能在Windows平台上使用。底层还将调用uxtheme.dll来实现Windows风格。QSkinStyle通过皮肤文件实现QT皮肤更改,皮肤文件定义了小部件的外观和运行时小部件状态的反映。不同平台上的外观一致。

基于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:

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

windows widget:

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

linux mdi:

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

windows mdi:

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

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风格)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Arduino Wire.h(IIC)库函数详解UNIAPP 离线打包 ANDROID APK下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

一键生成IOS App Icon工具

每次您想要查看AppStore时,art都会给出一个1024x1024图标,然后进入修改图像大小和plist文件图标配置的繁琐过程。苹果已经改变了背景,需要删除alpha频道。此工具不再满足要求。我做了一个新的Nodejs。使用nodejs比使用java要好得多。或者你可以上传到这里制作图标!生成的结果如图所示:首先尝试使用Graphics2D进行绘制,pu...

【资料】2021年最网红的FPGA开发板之一——DE10-Nano (SOC FPGA入门推荐!)

DE10 Nano开发板是2021最受欢迎的FPGA开发板之一。除了广泛应用于物联网、边缘计算、硬件加速、AI和EDA教育课程之外,许多爱好者还在网络上日益流行的开源复古游戏项目Mister中使用它。让我们来看看DE10 Nano提供的材料:Youjing官方网站上的材料(中文手册可用!!!23~课程培训材料2018产学合作培训材料基于2018产学协作培训材...

sqlserver 计算 百分比

selectltrim+'%'As百分比NUMERIC(P,S)P的默认值是:38S的默认值是:-84~127numeric(a,b)函数有两个参数,前面一个为总的位数,后面一个参数是小数点后的位数,例如numeric(5,2)是总位数为5,小数点后为2位的数,也就是说这个字段的整数位最大是3位。...

Oracle11g温习-第七章:redo日志

thread:线程,在单实例的环境下,thread#永远是1sequence:日志序列号。在日志切换时会递增。FIRST_CHANGE#:在当前日志中记录的首个数据块的scn。...

ArchLinux安装英伟达显卡驱动

Optimus manager qt Install novausudopacman-Sxf86-video novau右键单击导航栏上的Intel图标,选择列表中的设置功能,单击左侧的Optimus,然后在右侧窗口中选择nouveau作为切换方法。右键单击导航栏上的Intel图标以选择要使用的图形卡类型。在我选择Nvidia显卡后,您需要注销并再次登录才能...

oracle报ORA-08103: 对象不再存在错误

今天,在导入数据时,数据库多次抛出异常。最常见的原因是同时操作。有人截断了表,然后将其放入选择表中。在群里发布错误,有人立刻出来认出他,说他正在整理表格……如果不是因为这个原因,百度也给出了其他尝试的计划:再次执行;查询时添加架构。...