360新版特性界面实现(1)

来源:互联网 发布:广汽丰田面试经验知乎 编辑:程序博客网 时间:2024/05/18 18:15
工作当中,经常遇到一些小问题,却花费了一些小时间,在网上搜索答案,找到的文章也混乱无比,久而久之,桌面上的一些*.html和xxx_file文件越积越多,终究挤不出时间好好整理一下这些零散的资料。过一段时间后,索性删除,等下次遇到xx问题,继续搜索,进入while(1)。现在,循环N次,悟出了这么个道理,将这些小事和自己做的东东整理成技术日记,也好提高工作效率,也能帮到需要帮助的同行。

从Qt的界面实现说起,Qt能画很多很炫的界面,但自己没有美工的功底,只会模范美工的手艺,现在就来山寨一个撒(闽客说川话)。360安全卫士最新版本,在右上角的皮肤按钮的旁边,有一个下三角的主菜单,点击弹出菜单,可以看到"新版特性",点击打开开始体验。或者在安装360安全卫士完成后,新版特性界面也会自动弹出,让用户快速浏览该软件的最新功能,这是一个很好的小应用,也可以将之添加到您现在正在使用的软件中。

来几张图,看看新版特性界面到底是方的还是圆的。




上述几张图是360本身的新版特性界面,这个新版特性界面实现几个功能:
1.鼠标拖动,释放后,缓慢的恢复到初始位置。
2.鼠标拖动标题栏,可以移动窗口。
3.点击4个按钮,分别向左/向右移动到相应的页面。
4.上下左右键,控制页面的左右移动。
5.界面的4个顶点为圆弧。
......

不知道这个界面是如何画出来的,所以我打算用Qt来画这个界面,有2种方法:
1.new出4个QLabel标签,分别存放4张图,然后分别控制。这种方法比较繁琐,逻辑判断太多。
2.new出1个QLabel标签,将4张图画到QLabel中,然后按照4张图的宽度,确定每张页面的坐标。这种方法比较简单,我使用了这种方法。

在实现"360新版特性"界面时,会遇到这几个难点(相对的):
1.界面的透明。
2.堆栈窗体的控制。
3.Qt事件过滤器。
4.自定义处理各种事件。
5.界面恢复的缓慢效果。

我已经实现了一个比较粗糙的版本,但有些达不到目标效果,有些比较繁琐就没有再写了,以下是我的山寨版本:



有兴趣的朋友,可以先下载到本地,体验一下效果,尝试动手写一个,说不定用得着。

目前先提供可执行文件的下载地址,下载地址:360新版特性界面


具体涉及到源码的实现,待下一篇文章。

作者  : gzshun.
E-Mail: gzshuns#163.com (@)

转载请注明出处:http://blog.csdn.net/gzshun/article/details/7592865

原创粉丝点击