PyQt5仿网页鼠标移动点阵特效
Orz,前段时间有个 zz 需求,就是要做一个类似网页上很多个多点连线、鼠标移动跟随的那种炫酷特效,然后花了点时间在网上找了 js 做的,刚开始打算是嵌入 QWebView 来显示网页,后来研究了下 js 的算法代码,遂改用 QWidget 的 paintEvent 直接绘制。
# 大概思路
先根据窗口大小随机创建一些点
遍历这些点并找到与之相关联的点
在动画过程中绘制圆点和画两点之间的连线
属性动画 QPropertyAnimation 改变颜色的透明度
# 题外
这里没有仔细去研究 js 里的算法优化,在浏览器里嗖嗖的就生成了,在 py 里好慢…
尽量在 py 里优化了循环操作,也简单的做了个 cython 加速也才提高了 1s ? 1 倍?..
不要只是为了好看用这玩意儿,和网页的效果一样,占 CPU !!! 没有任何意义
如果有更好的优化算法请告知,3Q
pyd 是 python3.4 生成的,删掉 pyd 也能运行
# 代码
https://github.com/PyQt5/PyQt/blob/master/QPropertyAnimation/Rlatti ...
PyQt5仿网页图片鼠标移动特效
em,就是类似于那种游戏官网首页的图片,鼠标放上去后来回移动,图片的前景和背景错位移动。
# 原理分析
2 张一样大小的透明图片,1 张作为背景,一张作为前景(比如说人物)。
当鼠标往左移动时,前景人物跟着往左移动,背景往右移动
计算好偏移量(见代码中)
https://github.com/PyQt5/PyQt/blob/master/QLabel/ImageSlipped.py
# 关键代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Created on 2018年10月18日
@author: Irony
@site: https://pyqt5.com https://github.com/892768447
@email: 892768447@qq.com
@file: ImageSlipped
@description:
"""
from PyQt5.QtGui import QPixmap, QPainter
from PyQt5.QtWidgets import QWidget
__Author__ ...