python Qt5实现窗体跟踪鼠标移动

yipeiwu_com6年前Python基础

我就废话不多说了, 直接上代码吧!

from PyQt5.Qt import *
import sys
 
 
class Window(QWidget):
  def __init__(self):
    super().__init__()
    self.Flag=False
    self.setWindowTitle("窗口移动学习")
    self.resize(500,500)
    self.setup_ui()
 
  def setup_ui(self):
    pass
 
  def mousePressEvent(self, evt):
    #确定两个点(鼠标第一次按下的点)
    if evt.button()==Qt.LeftButton:#判断是否为左键执行
      self.Flag=True
      self.mouse_x=evt.globalX()
      self.mouse_y=evt.globalY()
 
      self.origin_x=self.x()
      self.origin_y=self.y()
 
  def mouseMoveEvent(self, evt):
    if self.Flag==True:
      move_x=evt.globalX()-self.mouse_x
      move_y=evt.globalY()-self.mouse_y
      dest_x=self.origin_x+move_x
      dest_y=self.origin_y+move_y
      self.move(dest_x,dest_y)
  def mouseReleaseEvent(self, QMouseEvent):
    self.Flag=False
 
if __name__=='__main__':
  import sys
  app=QApplication(sys.argv)\
 
  window=Window()
  window.show()
  window.setMouseTracking(True)#鼠标跟踪
  sys.exit(app.exec_())

以上这篇python Qt5实现窗体跟踪鼠标移动就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Django中如何防范CSRF跨站点请求伪造攻击的实现

CSRF概念 CSRF跨站点请求伪造(Cross—Site Request Forgery)。 攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完...

浅谈Python反射 & 单例模式

反射 什么是反射?   - 反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)   面向对象中的反射   - 通过字符串的形式来操作(获...

Python中py文件引用另一个py文件变量的方法

最近自己初学Python,在编程是遇到一个问题就是,怎样在一个py文件中使用另一个py文件中变量,问题如下: demo1代码 import requests r = requests...

pycharm访问mysql数据库的方法步骤

pycharm访问mysql数据库的方法步骤

不需要像eclipse那样添加驱动包,在pycharm里面下载一个pymysql包即可。 然后链接自己电脑的mysql并进行访问即可。 源码如下 import pymysql...

Python中的延迟绑定原理详解

直接看下面例子 my_ld = [lambda x:x*i for i in range(3)] my_list = [ld(2) for ld in my_ld] print(my...