当前位置:网站首页>Qt界面优化:鼠标双击特效
Qt界面优化:鼠标双击特效
2022-04-23 14:12:00 【ぃ灵彧が】
Qt界面优化:鼠标双击特效
一、双击特效

二、使用步骤
1. .h部分
代码如下:
#include <QMovie>
#include <QLabel>
#include <QMouseEvent>
#include <QLine>
protected:
void mouseDoubleClickEvent(QMouseEvent *event); //鼠标双击事件
2. .cpp部分
代码如下:
//鼠标双击特效
void MainWindows::mouseDoubleClickEvent(QMouseEvent *event)
{
//判断是否为鼠标左键双击
if(event->button() == Qt::LeftButton)
{
QLabel * label = new QLabel(this);
QMovie * movie = new QMovie("://images/mouse.gif");//加载gif图片
//设置label自动适应gif的大小
label->setScaledContents(true);
label->setMovie(movie);
//这里为了调用move方便,进行resize,需要知道的是gif的大小本来也就是150*150
label->resize(180,180);
label->setStyleSheet("background-color:rgba(0,0,0,0);");
//设置鼠标穿透
label->setAttribute(Qt::WA_TransparentForMouseEvents, true);
//让label的中心在当前鼠标双击位置
label->move(event->pos().x()-label->width()/2,event->pos().y()-label->height()/2);
//开始播放gif
movie->start();
label->show();
//绑定QMovie的信号,判断gif播放次数
connect(movie, &QMovie::frameChanged, [=](int frameNumber) {
if (frameNumber == movie->frameCount() - 1)//gif播放次数为1,关闭标签
label->close();
});
}
}
注意点
gif动图的背景必须是透明的!!!
以下为我的鼠标双击特效图片,大家可以点击该图片,长按进行保存使用。

版权声明
本文为[ぃ灵彧が]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_54754302/article/details/124342491
边栏推荐
猜你喜欢

关于UDP接收icmp端口不可达(port unreachable)

倒计时1天~2022云容灾产品线上发布会即将开始

线程组ThreadGroup使用介绍+自定义线程工厂类实现ThreadFactory接口

Pass in external parameters to the main function in clion

asp.net使用MailMessage发送邮件的方法

使用Executors类快速创建线程池

redis数据库讲解二(redis高可用、持久化、性能管理)

TUN 设备原理

線程組ThreadGroup使用介紹+自定義線程工廠類實現ThreadFactory接口

顺序表的操作,你真的学会了吗?
随机推荐
bc的用法
Introduction to the use of countdownlatch and cyclicbarrier for inter thread control
时间复杂度计算举例
错误:无法远程查找到密钥 “428F7ECC7117F726“
Notes on Visio drawing topology
Wechat applet rotation map swiper
How to do a project easily
正则表达式
Redis源码分析之HSET流程与ziplist
ansible及常用模块的使用
编译Openssl
剑指offer刷题(1)--面向华为
Preview CSV file
循环队列的基本操作(实验)
DP - [noip2000] grid access
mysql 5.1升级到5.611
LLVM - 生成加法
顺序表的操作,你真的学会了吗?
void*是怎样的存在?
openstack理论知识