转载:python原生态的输入窗口抖动+输入特效
2024-10-19 11:56:38
python原生态的输入窗口抖动+输入特效
出处:https://coding.net/u/acee/p/PythonPowerInput/git/blob/master/test_power_input.py
__author__ = 'Administrator'
import sys
from lib.qm_app import App
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import random
import time
class MoveThread(QThread):
MoveValue = pyqtSignal(QPoint)
def __init__(self, source_pos, parent):
super(MoveThread, self).__init__(parent)
self.source_pos = source_pos
def run(self):
for a in xrange(5):
self.MoveValue.emit(self.source_pos + QPoint(random.randint(1, 5),
random.randint(1, 5)))
time.sleep(0.05)
class LoadWidget(QLabel):
Start = pyqtSignal()
def __init__(self, gif_path, parent=None):
super(LoadWidget, self).__init__(parent)
self.setAttribute(Qt.WA_TranslucentBackground, True)
self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.Window | Qt.FramelessWindowHint)
self.movie = QMovie(gif_path)
self.movie.setScaledSize(QSize(50, 50))
self.setMovie(self.movie)
self.movie.frameChanged.connect(self.stop)
self.movie.start()
def start(self):
self.movie.start()
self.show()
self.Start.emit()
def stop(self, frame):
if frame == 11:
self.movie.stop()
self.close()
class PowerInput(QTextEdit):
def __init__(self):
super(PowerInput, self).__init__()
self.textChanged.connect(self.play_effect)
self.move_thread = MoveThread(None, self)
self.move_thread.MoveValue.connect(self.move)
def showEvent(self, event):
super(PowerInput, self).showEvent(event)
self.move_thread.source_pos = self.mapToGlobal(self.pos())
def play_effect(self, *args, **k):
rect = self.cursorRect()
pos = self.mapToGlobal(QPoint(rect.x(), rect.y()))
self.w = LoadWidget('d:/test.gif', self)
self.w.Start.connect(self.set_f)
self.w.move(pos)
self.w.start()
def set_f(self):
self.setFocus()
self.activateWindow()
self.move_thread.start()
if __name__ == '__main__':
app = App(sys.argv)
windows = PowerInput()
windows.show()
app.exec_()
最新文章
- Distinct Subsequences
- 【NEUQACM OJ】1018: A+B again
- asp.net MVC之 自定义过滤器(Filter) - shuaixf
- OkHttp,Retrofit 1.x - 2.x 基本使用
- activiti自定义流程之整合(五):启动流程时获取自定义表单
- CSS包含块containing block详解
- PHPNG (next generation)
- PHP的压力测试工具ab.exe 和mpm介绍提高并发数
- hdu 5475 An easy problem(暴力 || 线段树区间单点更新)
- Google搜索技巧-从入门到精通(从此学习进步、工作顺心)
- linux内核链表分析
- [LeetCode]题解(python):099-Recover Binary Search Tree
- 数学#素数判定Miller_Rabin+大数因数分解Pollard_rho算法 POJ 1811&;2429
- HDFS租约实践
- XML命名规则
- spring集成shiro登陆流程(下)
- BUAAMOOC项目终审报告
- nexus下载远程maven中央仓库的解决方案
- gulp实例
- IIS-将iis直接指向.net代码会出现错误