使用Skin(皮肤)是制作酷酷界面的一 个有利的工具,在用户界面GUI越来越重要的今天,一个应用程序如果只有一套皮肤,不能更换皮肤,那么这个应用程序的生命力是非常值得人们怀疑的;那么使 用Qt如何制作酷酷而又吸引人的界面呢?下面我会对在Qt下进行皮肤制作,异型窗口制作做一个总结,对于新手是一个入门,对于老手算是一个参考吧,如果有 不妥和不当之处,还请大家不吝指出。
制作漂亮的界面目前至少有两个关键因素,一个是窗口需要提供异型显示,另外一个就是提供换肤功能。前者是彰 显当前年轻人个性的一个很好的方式,因而也是深受当今年轻人的热爱;后者则是在前者的基础之上给了年轻人对于自己喜好的软件样式的更广泛的选择。

一、 异型窗口1、定义: 异型窗口主要对应的是操作系统默认的窗口样式。它是相对于默认操作系统中规规矩矩的长方形窗口而产生的一种可以采用任何形状显示的 GUI界面窗口。

2、简介:任何一种操作系统,无论是MAC,Linux,还是Windows,在其GUI系统中都会提供一种默认的 窗口样式。一般情况下这种样式都是比较规矩的长方形,或者圆角长方形;这种显示样式是由操作系统提供的,如果你采用其上的IDE进行GUI界面开发,默认 的界面样式仍然是系统默认的;然而,幸运的是,大部分的成熟的GUI开发系统都会提供异型窗口开发的解决方案。

3、实现说明:第一步、 窗口类需要从QWidget继承,象这样:class LExample:public QWidget{
Q_OBJECT // QT的宏,如果使用QT的信号和槽,必须在类的声明中的第一行加入此宏;具体情况参考QT文档;
LExample(QWidget *pv_event);
}; /* class LExample */
注意:必须是公有 继承,否则你这个窗口很多功能都实现不了。

第二步、窗口初始化时需要更改窗口为自定义模式和没有边界模式, like this:LExample::LExample:
QWidget(pv_event, NULL, WStyle_Customize | WStyle_NoBorder){
//
}
注意:这两者不可缺一,否则会出现其他效果,并不是完全的异型界 面了,读者可自行尝试;
第三步、如果整个程序主界面是异型,那么在主窗口初始化的时候增加下面这句话:
setBackgroundMode(QWidget::NoBackground); 注 意:这一条语句并不是必要的,去掉也并不影响最终结果;

第四步、制作主界面异型图片和檬板图片; 有些人一看到檬板俩字就像到了复杂的图像处理,已经有了要闪人的意思了,其实檬板的原理或许有点复杂,但是这里的做法却非常简单,我们只需要完成两副图片 即可;

  • 第一副,是你准备显示的主界面图片,这个图片的形状,内容设计你自己可以随意定制;
  • 第二副,这是一张檬板图片,这个檬板图片是什么样子的?它是做什么用的?

这个檬板图片是一个黑白单色图 片,也就是说这个图片只有黑白两色。檬板处理时,黑色是你要显示的主界面的部分,而白色则是要透明的部分。这样你就可以通过这个檬板图片任意的控制你要显 示的界面的形状了。另外,这个图片还有一个要求,就是大小要和前面的主界面图片相同,这样才能对整个主界面进行控制。

第五步、重载 paintEvent方法显示异型形状的界面;void LExample::paintEvent(QPaintEvent *pv_event){
//
QPixmap *pm_back_buffer = new QPixmap("images/main.png");
QBitmap *pm_mask = new QBitmap("images/main_mask.png");
// 设置檬板图片;
setMask(*pm_mask);
bitBlt(this, 0, 0 pm_back_buffer);
}
注 意:这里并不赞成把加载图片和设置檬板图片放到这个方法内,最好是将这个放到初始化的方法内,这样才会提高程序效率;
如此,经过这五大步骤,你 就可以实现异型窗口的实现了。

二、更换皮肤功能 这一步的实现比较简单,具体的方法就是重载你用到的所有控件的paintEvent方 法,自己控制控件界面的显示,全部采用配置文件+图片的方法,你就可以实现换肤功能了。
Reference:

http://www-128.ibm.com/developerworks/cn/linux/guitoolkit/qt/skin/index.html
http://www.qobject.com/simple/index.php?t82.html
http://blog.csdn.net/iamdbl/archive/2007/04/06/1555084.aspx

Qt制作Skin(皮肤)总结相关推荐

  1. PJblog皮肤模版制作说明-皮肤结构CSS

    PJblog皮肤模版制作说明-皮肤结构CSS示意图  2007-11-02 11:24  PJblog皮肤模版制作说明-皮肤结构CSS示意图,对于皮肤开发者来说,这是很有用的. 以下内容为局部的CCS ...

  2. 为利用 QT 制作的项目设置图标

    为利用 QT 制作的项目设置图标 在 .pro 文件末尾添加语句 RC_ICONS = logo.ico logo.ico 即为图标文件的名称

  3. linux qt 扫雷,qt制作扫雷

    沉默了一周我终于复活了,这回给大家带来的是扫雷.先说明一下,这个扫雷是我在ubuntu下用c++编写,qt制作的,如果windows系统需要用qt在windows下编译生成的.exe文件才能运行.而且 ...

  4. HBuilder制作英雄皮肤抽奖小游戏

    用HBuilder制作英雄皮肤抽奖小游戏,主要用到"轮播图"和"定时器",至于"轮播图"和"定时器" 是什么,请自行百度 ...

  5. QT制作软件---窗口跟随鼠标进行移动

    书接上文,在QT制作软件-去除系统自带的Dialog边框这篇博客中,我们提到了,如果移除系统自带的Dialog窗口会出现当前创建的窗口,无法拖动的情况.即如下图所示: 图1 解决方法:(原理) 要拖动 ...

  6. Qt制作简单标签云(上)

    前言:这两天看Qt看到了网络通信这块,就想起了以前想写的一个小项目:标签云(当时不知道这个名,后来查了才知道的).花了一些心思,做了个简易的标签云版本.记录在此. 本项目分以下几个部分进行记录: 1. ...

  7. Qt制作简易的酷狗音乐播放器

    Qt制作简易的音乐播放器流程: 一.必须先抓取酷狗音乐的api,必须要得到搜索音乐的 hash . album_id 值.dfid.mid.platid等数据. 至于获取的方法,可以参考网上的连接:h ...

  8. 在网上购物竟然也能和Python扯上关系!电脑上用自己写的程序购物?别说,QT实现还真挺简单(Python如何利用QT制作电脑的手机版拼多多)

    拼多多现在也是越来越火了,但是不知道大家有没有发现,拼多多似乎一直不能通过网页进行访问.淘宝,京东都有微信客户端,那么怎么拼多多就没有呢?带着这个疑问,我特地去手机爬取了一下拼多多的客户端.(其实也不 ...

  9. 搜狗拼音皮肤 php文件,手把手教你制作搜狗输入法皮肤

    [IT168 软件技巧]区别于其他输入法死板单调的界面,搜狗输入法推出的皮肤功能更符合年轻"多变"的口味,一经推出,即受到80后.90后的大力推崇,目前搜狗输入法官网已经有两万余款 ...

最新文章

  1. 重磅 | 中国工程院提出新一代智能制造【附下载】
  2. 制作新版STC单片机WiFi下载器
  3. c语言中包含math.h的时用gcc编译要加-lm参数
  4. CodeForces - 236D Let‘s Play Osu!(概率dp)
  5. 如果现在还要设计一个新系统,为什么选择 Kafka 而不是 RabbitMQ?
  6. 云安全联盟发布更新版安全应用指南
  7. Socket编程小结
  8. Oracle案例:一次非常艰难的drop多个PDB的恢复
  9. android点击获得坐标,android点击MapView任意一点获得坐标
  10. CRM WEB UI 01 BOL向导创建的搜索
  11. OverflowError: Python int too large to convert to C long 在Windows环境下Python报错
  12. 弹弹堂手游语音服务器怎么连接,腾讯弹弹堂手游空间怎么进去 互动玩法攻略介绍...
  13. Android中URI
  14. 前端项目运行以后端口不是常见的8080等端口,端口数很大,不在配置的端口跑项目
  15. LaTex编辑器编辑公式
  16. 串口通信的隔离传输方案记录
  17. 华为云文件夹服务器,华为云文件夹服务器
  18. 安装目录里无法找到计算机,安装软件弹出系统找不到指定的路径提示解决方法...
  19. 2013年全球最值得模仿的10个社交类网站应用
  20. css实现弧线,CSS3 彩虹弧线太极波动图

热门文章

  1. linux限制普通用户命令,sudo 限制普通用户权限(示例代码)
  2. jquery.datepick使用
  3. python标识符区不区分大小写_Python 中的标识符是不区分大小写的。
  4. C语言>>写一函数,用“起泡法”对输入的10个字符由小到大排序。
  5. Python(自学笔记1)
  6. Linux入门:~/.bashrc改字体颜色
  7. 一梦江湖获取服务器信息卡在100%,一梦江湖小技巧,不氪金,卡级玩家怎么获取资源提升修为...
  8. 微淘小程序模版开源(含拼团功能)
  9. 上市非上岸:讲述互联网创业的残酷 ☞ 对从事互联网从业人员的警示
  10. 个人计算机市场排行,2017中国市场笔记本电脑排行榜Top50——查看:雷神911登顶...