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_()

  

最新文章

  1. Distinct Subsequences
  2. 【NEUQACM OJ】1018: A+B again
  3. asp.net MVC之 自定义过滤器(Filter) - shuaixf
  4. OkHttp,Retrofit 1.x - 2.x 基本使用
  5. activiti自定义流程之整合(五):启动流程时获取自定义表单
  6. CSS包含块containing block详解
  7. PHPNG (next generation)
  8. PHP的压力测试工具ab.exe 和mpm介绍提高并发数
  9. hdu 5475 An easy problem(暴力 || 线段树区间单点更新)
  10. Google搜索技巧-从入门到精通(从此学习进步、工作顺心)
  11. linux内核链表分析
  12. [LeetCode]题解(python):099-Recover Binary Search Tree
  13. 数学#素数判定Miller_Rabin+大数因数分解Pollard_rho算法 POJ 1811&2429
  14. HDFS租约实践
  15. XML命名规则
  16. spring集成shiro登陆流程(下)
  17. BUAAMOOC项目终审报告
  18. nexus下载远程maven中央仓库的解决方案
  19. gulp实例
  20. IIS-将iis直接指向.net代码会出现错误

热门文章

  1. (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO
  2. 加载form表单
  3. PHP 使用reflection时的问题,以及解决方案
  4. (转)ajax.dll,ajaxpro.dll的区别和用法
  5. mac下sublime text3安装SFTP及使用
  6. HDU 2689Sort it 树状数组 逆序对
  7. Odoo10尝鲜:出勤登记
  8. SQlserver 行转列
  9. Django跑起来
  10. easyUI学习1