博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转载:python原生态的输入窗口抖动+输入特效
阅读量:6983 次
发布时间:2019-06-27

本文共 2206 字,大约阅读时间需要 7 分钟。

python原生态的输入窗口抖动+输入特效

出处:https://coding.net/u/acee/p/PythonPowerInput/git/blob/master/test_power_input.py

__author__ = 'Administrator'import sysfrom lib.qm_app import Appfrom PyQt4.QtGui import *from PyQt4.QtCore import *import randomimport timeclass 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_()

  

转载地址:http://lcnpl.baihongyu.com/

你可能感兴趣的文章
网络嗅探软件全接触(2)
查看>>
J0ker的CISSP之路:复习-Information Security Management(4)
查看>>
SCOM 2007 R2监控系统安装部署(三)安装SCOM报表服务器和审计服务器
查看>>
分布式监控系统Zabbix-3.0.3-完整安装记录 - 添加shell脚本监控
查看>>
Redis中的关系查询(范围查询,模糊查询等...)
查看>>
Git常用命令总结【转】
查看>>
Android高级界面组件的学习(三)
查看>>
JVM 常量池理解
查看>>
【设计模式】—— 创建者模式Builder
查看>>
Phalcon入门教程之模型CURD(2)
查看>>
四川成立大数据发展研究会 拟建公共云暨数据交易中心
查看>>
安全公司发现针对印度外交部与军事机构的间谍活动
查看>>
无接口.NET代码的单元测试
查看>>
数据库产品如何选型
查看>>
日本外务省新设网络安全保障政策室
查看>>
美“智能城市挑战赛”决赛名单公布:7座城市入围
查看>>
企业全光网将成运营商部署千兆接入的商业驱动力
查看>>
sql 2000 分页存储过程
查看>>
2030年实现全球10TW的光伏目标 太阳能电池需要哪些突破?
查看>>
2017年物联网五大趋势
查看>>