Qt 鼠标样式特效探索样例(一)
来源:互联网 发布:普通车床车v型带轮算法 编辑:程序博客网 时间:2024/06/06 04:17
Qt 鼠标样式特效探索样例(一)
心血来潮,突然想在Qt里玩一把鼠标样式,想到在浏览网页时,经常看到漂亮的鼠标动画,于是今天摸索着乱写个粗糙的demo,来满足自己的好奇心。
效果图
方案要点
1.不管用什么控件,显示动画需要的4张星星图,大小依次递减。
2.记录鼠标移动坐标,分时、分段让星星控件响应move移动到对应轨迹。
3.移动坐标数据量大,不必每一个值都使其成为星星控件的移动轨迹。
4.星星控件起始坐标注意劈开鼠标焦点坐标,否则用户无法点击窗体控件,而只能疯狂的点到星星控件了。
实现代码
#ifndef WIDGET_H#define WIDGET_H#include <QtGui/QWidget>#include <QTimer>#include <QList>#include <QPoint>class Widget : public QWidget{ Q_OBJECTpublic: Widget(QWidget *parent = 0); ~Widget();private: QWidget *w1,*w2,*w3,*w4; QTimer *timer; QList<QPoint> pos_list_w2; QList<QPoint> pos_list_w3; QList<QPoint> pos_list_w4; int count; void setMyStyle(QWidget *wid, int w, int h);protected: void mouseMoveEvent(QMouseEvent *event);private slots: void updatePos();};#endif // WIDGET_H
#include "widget.h"#include <QPalette>#include <QDebug>#include <QMouseEvent>Widget::Widget(QWidget *parent) : QWidget(parent){ QPalette phome = this->palette(); phome.setBrush(this->backgroundRole(), QBrush(QPixmap(":/images/bg.jpg"))); this->setPalette(phome); w1 = new QWidget(this); w2 = new QWidget(this); w3 = new QWidget(this); w4 = new QWidget(this); setMyStyle(w1,34,34); setMyStyle(w2,26,26); setMyStyle(w3,18,18); setMyStyle(w4,9,9); timer = new QTimer(this); connect(timer,SIGNAL(timeout()),this,SLOT(updatePos())); timer->start(100); this->setMouseTracking(true); count = 0;}Widget::~Widget(){}void Widget::setMyStyle(QWidget *wid, int w, int h){ wid->setWindowFlags(Qt::FramelessWindowHint); wid->resize(w,h); wid->setStyleSheet("border-image: url(:/images/cursor.png);");}void Widget::mouseMoveEvent(QMouseEvent *event){ w1->move(event->x(),event->y()); if(!count) pos_list_w2 << event->pos(); count > 7 ? (count = 0): count++; }void Widget::updatePos(){if(!pos_list_w4.isEmpty()){this->w4->move(pos_list_w4.takeFirst());}if(!pos_list_w3.isEmpty()){pos_list_w4 << pos_list_w3.first();this->w3->move(pos_list_w3.takeFirst());}if(!pos_list_w2.isEmpty()){pos_list_w3 << pos_list_w2.first();this->w2->move(pos_list_w2.takeFirst());}}
写在最后
样例代码有些粗糙,欢迎改进,欢迎交流!
期待各种建议、意见、和创意ideas!
- Qt 鼠标样式特效探索样例(一)
- Qt之鼠标样式特效探索样例
- Qt之鼠标样式
- Qt之鼠标样式
- Qt之鼠标样式
- QT自定义鼠标样式
- CSS中的Filter样式特效(一)
- Qt|Qt之鼠标样式
- Qt鼠标事件 我的鼠标样式
- qt鼠标事件总结(一)
- QT鼠标左键按下,鼠标样式改变,释放之后,鼠标样式还原
- 鼠标特效
- 鼠标特效
- 鼠标特效
- 鼠标特效
- Qt样式表参考(一)
- JS特效(鼠标特效)
- JavaScript特效一(网页换肤、鼠标移到头像上获取个人信息getByClass)
- grub
- 管中窥豹,一斑绝非一般
- Hibernate查询缓存
- makefile分析一
- 服务器通常提权思路
- Qt 鼠标样式特效探索样例(一)
- 2011全球最好50网站
- 思考:苹果联合创始人史蒂夫·沃兹尼亚克的言论:Android一些地方比iPhone好
- ttt
- 杨致远时代终结:雅虎应知天命?
- centos 安装 jdk
- HBase 0.90.5 + Hadoop 1.0.0 集成
- Delphi多线程及消息发送传递结构体参数
- WP 7初体验(入门级教材)-------目录