python Qt5窗体跟踪鼠标移动

54 篇文章 5 订阅



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_())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值