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

yipeiwu_com5年前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设计】。

相关文章

对python过滤器和lambda函数的用法详解

1. 过滤器 Python 具有通过列表解析 将列表映射到其它列表的强大能力。这种能力同过滤机制结合使用,使列表中的有些元素被映射的同时跳过另外一些元素。 过滤列表语法: [ mappi...

基于Python中numpy数组的合并实例讲解

基于Python中numpy数组的合并实例讲解

Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np.hstack() - np...

Python字符串和文件操作常用函数分析

本文实例分析了Python字符串和文件操作常用函数。分享给大家供大家参考。具体如下: # -*- coding: UTF-8 -*- ''' Created on 2010-12-2...

python选择排序算法实例总结

本文实例总结了python选择排序算法。分享给大家供大家参考。具体如下: 代码1: def ssort(V): #V is the list to be sorted j = 0...

python机器学习之神经网络(三)

python机器学习之神经网络(三)

前面两篇文章都是参考书本神经网络的原理,一步步写的代码,这篇博文里主要学习了如何使用neurolab库中的函数来实现神经网络的算法。 首先介绍一下neurolab库的配置: 选择你所...