转载: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 ...
随机推荐
- static 使用,静态变量
由static修饰,属于整个类,被类对象共享, 可以由类名,对象名访问 static可以修饰变量,方法,代码块 public class HelloWorld { static String clas ...
- Gradle basic
1. execute default file (build.gradle) gradlew 2. execute another file gradlew -b [filename] 3. bas ...
- Spring----->projects----->Spring Web Flow
1.概述(about Spring Web Folw) Spring Web Flow是spring社区一个子project Spring Web Flow builds on Spring MVC ...
- laravel 数据库迁移
问题:之前有创建迁移文件 并且执行过 如果删除迁移文件 再重新创建迁移文件时就有问题 提示找不到之前的迁移文件 /** 一开始执行的命令 php artisan make:migration crea ...
- c++ 递归斐波那契算法及时间复杂度
#include<iostream> int fib(int n){ ) return n; else ) + fib(n-); } int main(){ ;i<;i++){ st ...
- ubuntu 环境变量修改和恢复总结[收藏]
在Ubuntu中有如下几个文件可以设置环境变量/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行./etc ...
- redis pipeline
redis pipeline 简而言之就是把多个redis命令打包,一起发送给redis server,并且一起返回结果,减少客户端和服务器之间的多次“折返跑”
- Mac上Homebrew的使用 (Homebrew 使 OS X 更完整)
0 Homebrew是啥? “Homebrew installs the stuff you need that Apple didn’t.——Homebrew 使 OS X 更完整”. Homebr ...
- 使用my exclipse对数据库进行操作(2)
二.增加 public static void main(String[] args) { //TODO Auto-generated method stub //4.用户输入需要添加的项目 ...
- select 练习4
21.查询score中选学多门课程的同学中分数不是所有成绩中最高分成绩的记录. select * from score where cno in(select cno from score grou ...