360新版特性界面实现(3)
来源:互联网 发布:php 高并发锁机制 编辑:程序博客网 时间:2024/06/09 19:07
1.画关闭按钮
拖动图片的功能放后面说,先把关闭按钮给画出来。
现在很多软件,类似QQ,360,91助手......等等软件,界面上都有很多很漂亮的按钮,当鼠标移上去,按钮变为高亮,当鼠标点击下去,按钮变为暗色凹下,当鼠标移开,按钮又恢复原来的样子。
这效果都是由多张图片切换而来的。
涉及到函数:eventFilter, installEventFilter.
几种按钮的enum:
2.窗体的移动
3.图片的移动
在操作上,有3个涉及到图片的移动:
(1).鼠标拖动图片
(2).鼠标拖动图片后,释放鼠标,图片恢复原位
(3).右键鼠标,图片右移
(4).键盘方向键控制图片的移动
(5).点击界面的4个按钮,分别移动到按钮对应的界面
4.关于鼠标控制的移动
这些主要是涉及到一些逻辑的代码,直接贴出:
5.点击界面4个按钮进行移动
6.键盘方向键的控制
捕捉对应的按键事件,只需重新实现键盘事件:
void keyPressEvent(QKeyEvent *);
左上键:图片右移
右下键:图片左移
7.图片移动的关键函数
移动图片的具体函数,要缓慢的移动图片,也就是在循环里面延迟一下,并响应UI事件,防止界面冻结(未响应)。
在程序中,出现setLabelMove和getLabelMove函数,这两个函数主要是用来防止多个事件同时移动界面,导致错误。所以这里相当于给图片的移动加锁,保证移动操作的唯一性。
qApp->processEvents(QEventLoop::AllEvents);
该函数用来处理所有事件,保证了界面的正常运行。
源码下载地址:360新版特性界面
作者 : gzshun.
E-Mail: gzshuns#163.com (@)
转载请注明出处:http://blog.csdn.net/gzshun/article/details/7626756
拖动图片的功能放后面说,先把关闭按钮给画出来。
现在很多软件,类似QQ,360,91助手......等等软件,界面上都有很多很漂亮的按钮,当鼠标移上去,按钮变为高亮,当鼠标点击下去,按钮变为暗色凹下,当鼠标移开,按钮又恢复原来的样子。
这效果都是由多张图片切换而来的。
new出一个QToolButton,设置关闭按钮图标。按钮图片一般都以4种状态提供,将4张图片拼成1张png。所以每次只需取出图片中的1/4就行,然后将关闭按钮移动到右上角。
想在Qt中实现这3种效果,很简单,只需在窗体中安装事件过滤器即可。涉及到函数:eventFilter, installEventFilter.
几种按钮的enum:
2.窗体的移动
窗体和图片的移动涉及到鼠标事件,只需事件鼠标的一些事件就可以达到预期的效果,主要的事件是:
3.图片的移动
在操作上,有3个涉及到图片的移动:
(1).鼠标拖动图片
(2).鼠标拖动图片后,释放鼠标,图片恢复原位
(3).右键鼠标,图片右移
(4).键盘方向键控制图片的移动
(5).点击界面的4个按钮,分别移动到按钮对应的界面
4.关于鼠标控制的移动
这些主要是涉及到一些逻辑的代码,直接贴出:
5.点击界面4个按钮进行移动
6.键盘方向键的控制
捕捉对应的按键事件,只需重新实现键盘事件:
void keyPressEvent(QKeyEvent *);
左上键:图片右移
右下键:图片左移
7.图片移动的关键函数
移动图片的具体函数,要缓慢的移动图片,也就是在循环里面延迟一下,并响应UI事件,防止界面冻结(未响应)。
在程序中,出现setLabelMove和getLabelMove函数,这两个函数主要是用来防止多个事件同时移动界面,导致错误。所以这里相当于给图片的移动加锁,保证移动操作的唯一性。
防止界面冻结:
qApp->processEvents(QEventLoop::AllEvents);
该函数用来处理所有事件,保证了界面的正常运行。
8.将控件置顶
在最后补充下,要将需要的控件raise到栈顶:
源码下载地址:360新版特性界面
作者 : gzshun.
E-Mail: gzshuns#163.com (@)
转载请注明出处:http://blog.csdn.net/gzshun/article/details/7626756
阅读全文
1 0
- 360新版特性界面实现(3)
- Qt日记(3)-360新版特性界面实现(3)
- Qt日记(3)-360新版特性界面实现(3)
- Qt日记(3)-360新版特性界面实现(3)
- 360新版特性界面实现(1)
- 360新版特性界面实现(2)
- Qt日记(1)-360新版特性界面实现(1)
- Qt日记(2)-360新版特性界面实现(2)
- Qt日记(1)-360新版特性界面实现(1)
- Qt日记(2)-360新版特性界面实现(2)
- Qt日记(1)-360新版特性界面实现
- OpenStack Mitaka新版特性
- 新版IDEA特性--JAVA
- google新版界面
- CSDN新版界面
- 仙侣奇缘3新版登录器界面设定
- MFC界面库BCGControlBar v25.3新版亮点:Gauge Controls
- 迅雷新版界面看起来不错
- 例子---PHP与Form表单之二
- 如何利用大数据避免双十一疯狂剁手?
- 如何成为一个Java高薪架构师?
- 欢迎使用CSDN-markdown编辑器
- 关于C++ pb_ds库
- 360新版特性界面实现(3)
- fetch API获取返回值的方式
- iframe 取消白边,是真的取消白边
- Android性能优化之使用线程池处理异步任务
- 多元回归分析
- 有关android的一些网址
- Android 高德地图、百度地图的sha1值获取
- 基于Django搭建简单的博客系统
- fresco使用集锦