节前分享一个鼠标样式动画,祝大家春节快乐!

念茜 2012-01-19 01:42:26
加精
要放假了,闲来无事,想到在浏览网页时,经常看到漂亮的鼠标动画,琢磨着在Qt里也美化一下,写个demo分享给大家。
先上效果图


细节可参阅我的blog :http://blog.csdn.net/yiyaaixuexi/article/details/7209982

不废话,上demo代码:


#ifndef WIDGET_H
#define WIDGET_H

#include <QtGui/QWidget>
#include <QTimer>
#include <QList>
#include <QPoint>

class Widget : public QWidget
{
Q_OBJECT

public:
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());
}
}


...全文
6182 189 打赏 收藏 转发到动态 举报
写回复
用AI写文章
189 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangrenwei 2013-04-20
  • 打赏
  • 举报
回复
谢谢分享,楼主高手啊
编程艺术 2013-03-22
  • 打赏
  • 举报
回复
新手学习!
YHL27 2012-02-13
  • 打赏
  • 举报
回复
cool,顶一个。。
kkkkwwwwq 2012-02-10
  • 打赏
  • 举报
回复
不错啊
Siliphen 2012-02-09
  • 打赏
  • 举报
回复
不错,不错
pzhuyy 2012-02-09
  • 打赏
  • 举报
回复
楼主厉害。。。
seeQe 2012-02-08
  • 打赏
  • 举报
回复
QT 开发我这边要等很多年了哇,可惜
valen_zt 2012-02-07
  • 打赏
  • 举报
回复
谢谢。。
shiva2012 2012-02-06
  • 打赏
  • 举报
回复
楼主,很好,幸苦了
曹宇 2012-02-05
  • 打赏
  • 举报
回复
新年快乐,谢谢分享!!
lianxiaoyi 2012-02-04
  • 打赏
  • 举报
回复
才学JAVA 顶一个
luoshanzhiyao 2012-02-03
  • 打赏
  • 举报
回复
用QT来做,不错啊
unix-王小宇 2012-02-03
  • 打赏
  • 举报
回复
我不怎么会,但是无限虚心求教。。
meng15201221974 2012-02-03
  • 打赏
  • 举报
回复
能不能下载下来,玩玩看
sdudubing 2012-02-02
  • 打赏
  • 举报
回复
妞妞真厉害,佩服哈
aleclee0826 2012-02-02
  • 打赏
  • 举报
回复
来看看!新年快乐哦!
永不降落 2012-02-02
  • 打赏
  • 举报
回复
厉害!!!
qingqing_benniu 2012-02-01
  • 打赏
  • 举报
回复


为什么我直接拿代码弄的效果是这个样子呢
qingqing_benniu 2012-02-01
  • 打赏
  • 举报
回复

卜错哦 学习啦..
zdk20002000 2012-02-01
  • 打赏
  • 举报
回复
好东西,谢谢分享
加载更多回复(78)

16,212

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧