首页| 论坛| 消息

标题:[已解决!]重写鼠标移动事件,实现label切图  之 "无线刷新图片"
作者:chenwei8865
日期:2017-11-14 19:49
内容:

void Widget::mouseMoveEvent(QMouseEvent *ev)
{
    int x=ev->x();
    int y=ev->y();

    if (x>clilabel->x()&&xx()+clilabel->width()&&y>clilabel->y()&&yy()+clilabel->height())
    {

       //this->setCursor(Qt::OpenHandCursor);
       //clilabel->setStyleSheet("background-image:url(E:/GIF/GIF.gif)");

        movie1 = new QMovie("E:/GIF/GIF2.gif");
        clilabel->setMovie(movie1);
        movie1->start();
    }else {

        movie2 = new QMovie("E:/GIF/GIF.gif");
        clilabel->setMovie(movie2);
        movie2->start();
    }
}
请问这里逻辑要怎么改啊?  
现在是 鼠标动一下 就重新载入这个GIF动图.
我鼠标多动几次,CUP就暴增...也是醉了.


#1 [chenwei8865 11-14 19:50]
自己顶一下/...
#2 [大漠之鹰 11-14 20:02]
你要实现什么功能啊?
#3 回 大漠之鹰 的帖子 [chenwei8865 11-14 20:25]
大漠之鹰:你要实现什么功能啊? (2017-11-14 20:02) 
就是要鼠标停留在 label时显示一张gif动图,
鼠标离开则显示原来默认的gif 动图
#4 [小韩老师 11-14 20:25]
int x=ev->x();int y=ev->y();
if (x>clilabel->x()&&xx()+clilabel->width()&&y>clilabel->y()&&yy()+clilabel->height())
{
//this->setCursor(Qt::OpenHandCursor);
//clilabel->setStyleSheet("background-image:url(E:/GIF/GIF.gif)");
if(!movie1)//判断是否是空指针,也可以是movie1 == nullptr
{
movie1 = new QMovie("E:/GIF/GIF2.gif");
}else
{ [/col ..
#5 回 大漠之鹰 的帖子 [chenwei8865 11-14 20:31]
大漠之鹰:你要实现什么功能啊? (2017-11-14 20:02) 
我那个代码中的if 条件 是在别人的帖子中抄的 ,不过好像有问题 .
就是说鼠标只要一动,立马重新载入 图片.
我这个代码 即使在label之外移动鼠标 也会不断刷新图片.
而我想要的是移到label 内换图,在这个label 里面 怎么移动 只要不出范围就 保持这个图片的播放.
而 鼠标移出 label也一样就显示 原来默认的图片.
大神可以帮忙改下逻辑思路么谢谢了

<< 1 2 >> (1/2)

回复 发表
主题 版块