转载:python原生态的输入窗口抖动+输入特效
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_()
转载:python原生态的输入窗口抖动+输入特效的更多相关文章
- python入门学习:6.用户输入和while循环
python入门学习:6.用户输入和while循环 关键点:输入.while循环 6.1 函数input()工作原理6.2 while循环简介6.3 使用while循环处理字典和列表 6.1 函数in ...
- 在Windows命令行窗口中输入并运行PHP代码片段(不需要php文件)的方法
有时候只是简单的为了测试某个php函数的效果,以前总是需要建一个php文件,复制这个文件的路径,再通过web访问或者用php命令执行这个php文件. 一直想要怎么才能不用创建文件,才能直接执行PHP代 ...
- Python+Selenium自动化-清空输入框、输入内容、点击按钮
Python+Selenium自动化-清空输入框.输入内容.点击按钮 1.输入内容 send_keys('valve'):输入内容valve #定位输入框 input_box = browser. ...
- Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) JAVA日志的前世今生 .NET MVC采用SignalR更新在线用户数 C#多线程编程系列(五)- 使用任务并行库 C#多线程编程系列(三)- 线程同步 C#多线程编程系列(二)- 线程基础 C#多线程编程系列(一)- 简介
Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 ...
- 好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字
原文:好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字 版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csd ...
- 转载-python学习笔记之文件I/O
Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...
- (转载)Python之道1-环境搭建与pycharm的配置django安装及MySQL数据库配置
近期做那个python的开发,今天就来简单的写一下开发路线的安装及配置, 开发路线 Python3.6.1+Pycharm5.0.6+Django1.11+MySQL5.7.18 1-安装Python ...
- WinForm中TextBox 中判断扫描枪输入与键盘输入
本文转载:http://www.cnblogs.com/Hdsome/archive/2011/10/28/2227712.html 提出问题:在收货系统中,常常要用到扫描枪扫描条码输入到TextBo ...
- C#_技巧:窗口抖动
原理 * 窗口抖动:即每隔一段很小的时间,窗口位置发生变化 * 时间控制:利用for循环||利用timer * 窗口位置发生变化:控件Left/Top属性或Location属性, 注:Left/To ...
随机推荐
- SGU 311. Ice-cream Tycoon(线段树)
311. Ice-cream Tycoon Time limit per test: 0.5 second(s)Memory limit: 65536 kilobytes input: standar ...
- iOS设计模式-Block实现代理的逻辑
在A页面,点击跳转到B页面,B页面操作完,回到A页面,并刷新A页面的内容.典型的例子,就是在一个列表里,点击新增,跳到新增页面,新增完,把数据传回给列表页,并刷新列表页里的内容. 这个,我平时一般是通 ...
- Linux 中write()函数的出错情况及处理
write函数首先将进程需要发送的数据先放在进程缓冲区中,然后向socket的发送缓冲区进行拷贝,在此,可能出现这样情况,即当进程缓冲区中的数据量大于此时发送缓冲区中所能接受的数据量时,若此时处于阻塞 ...
- Linux档案与目彔的基本操作(查看与权限)
此文包含的命令: cd.pwd.mkdir.rmdir.rm.ls.cp.mv.cat.tac.more.less.head.tail.od.touch.umask.chattr.lsattr.fil ...
- 开源PLM软件Aras详解二 汉化以及界面
Aras安装完毕之后,默认语言为英语,对于国内很多制造业并不适用,那么下面就来说说如何汉化 首先下载汉化包:zh-cn_languagepack-110v3.zip 步骤如下: 步骤1- 设定安装程序 ...
- 《CSS3秘籍》(第三版)-读书笔记(3)
第9章 装饰网站导航 1. 选择要定义样式的链接 大部分浏览器都支持4种基本的链接状态:未访问的链接.已访问的链接.访问者的鼠标正悬停在上方的链接,以及正被单击的链接.CSS提供了与这些状态对应的4 ...
- docker学习使用
安装什么的就略过了,之前已经整理过,这里就说说自己使用中的一些东西,也是初用,记录下(现在使用win10 64位,使用Docker for Windows直接安装就好[需要专业版win10安装hype ...
- ADT bundle和Eclipse和Android Studio有什么区别?安卓开发该用哪个?
这三个版本的出现有一定的历史的原因:1.最开始只有eclipse+独立的adt一种开发环境,但是由于eclipe作为一种通用的ide,带来的问题太多,经常出现eclipse的版本不兼容adt的情况,或 ...
- SAP 打开账期
1.先OB52修改账期: 如下界面开得公司9000下面 7.8月份的账期 2.mmpv 关闭上两个账期 3.mmrv 查看现在账期情况
- ObjC.class-cluster
class cluster In a class cluster, only an abstract superclass is public. Allocating an instance actu ...