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原生态的输入窗口抖动+输入特效的更多相关文章

  1. python入门学习:6.用户输入和while循环

    python入门学习:6.用户输入和while循环 关键点:输入.while循环 6.1 函数input()工作原理6.2 while循环简介6.3 使用while循环处理字典和列表 6.1 函数in ...

  2. 在Windows命令行窗口中输入并运行PHP代码片段(不需要php文件)的方法

    有时候只是简单的为了测试某个php函数的效果,以前总是需要建一个php文件,复制这个文件的路径,再通过web访问或者用php命令执行这个php文件. 一直想要怎么才能不用创建文件,才能直接执行PHP代 ...

  3. Python+Selenium自动化-清空输入框、输入内容、点击按钮

    Python+Selenium自动化-清空输入框.输入内容.点击按钮   1.输入内容 send_keys('valve'):输入内容valve #定位输入框 input_box = browser. ...

  4. Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) JAVA日志的前世今生 .NET MVC采用SignalR更新在线用户数 C#多线程编程系列(五)- 使用任务并行库 C#多线程编程系列(三)- 线程同步 C#多线程编程系列(二)- 线程基础 C#多线程编程系列(一)- 简介

    Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 ...

  5. 好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字

    原文:好玩的WPF第一弹:窗口抖动+边框阴影效果+倒计时显示文字 版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csd ...

  6. 转载-python学习笔记之文件I/O

    Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...

  7. (转载)Python之道1-环境搭建与pycharm的配置django安装及MySQL数据库配置

    近期做那个python的开发,今天就来简单的写一下开发路线的安装及配置, 开发路线 Python3.6.1+Pycharm5.0.6+Django1.11+MySQL5.7.18 1-安装Python ...

  8. WinForm中TextBox 中判断扫描枪输入与键盘输入

    本文转载:http://www.cnblogs.com/Hdsome/archive/2011/10/28/2227712.html 提出问题:在收货系统中,常常要用到扫描枪扫描条码输入到TextBo ...

  9. C#_技巧:窗口抖动

    原理 * 窗口抖动:即每隔一段很小的时间,窗口位置发生变化  * 时间控制:利用for循环||利用timer * 窗口位置发生变化:控件Left/Top属性或Location属性, 注:Left/To ...

随机推荐

  1. MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法

    环境:linux,mysql5.5.21 错误:Host is blocked because of many connection errors; unblock with 'mysqladmin ...

  2. machine learning----->有监督学习和无监督学习的区别

    1.有监督学习和无监督学习的区别: 1.1概述: 有监督学习是知道变量值(数据集)和结果(已知结果/函数值),但是不知道函数样式(函数表达式)的情况下通过machine learning(ML)获得正 ...

  3. spring中Bean的生命周期

    初始化方法:在Bean实例初始化后自动执行的方法 销毁方法:在Bean实例销毁前执行的方法 <bean id="bm" class="springTest.Car& ...

  4. SQL Server AlwaysOn架构及原理

    SQL Server AlwaysOn架构及原理 SQL Server2012所支持的AlwaysOn技术集中了故障转移群集.数据库镜像和日志传送三者的优点,但又不相同.故障转移群集的单位是SQL实例 ...

  5. Asp.net web api部署在某些服务器上老是404

    asp.net web api部署在Windows服务器上后,按照WebAPI定义的路由访问,老是出现404,但定义一个静态文件从站点访问,却又OK. 这时,便可以确定是WebAPI路由出了问题,经调 ...

  6. eclipse 相同变量高亮显示 颜色修改 变量着色

    问题描述:      在eclipse中使用快捷键或其他原因,不小心按错了,使得变量的高亮显示没了.   1.简单的办法:  网上搜了一下,原来是Toggle Mark Occurrences (Al ...

  7. C# 基础(6)--Winform

    WinForm 简称,Windows Form ,调用.Net框架. Return 只是退出当前方法. MessageBox.Show("输入的Email地址是非法的!"); 把整 ...

  8. @Html.Partials 加载分布视图传参数

    如何在视图中利用 viewData参数和model参数,示例如下 <body> <div style="background:#ffd800;width:200px;pad ...

  9. 手写DataSet,DataTable

    一:DataSet DataSet ds = new DataSet();//创建DataSet DataTable dt = new DataTable();//创建一个DataTalbe dt.C ...

  10. WinForm动态添加控件及其事件(转)

    出处:http://blog.sina.com.cn/s/blog_60d576800100tf61.html 1        private void PhotoForm_Load(object  ...