import sys
import time
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
# 鼠标左键按下标识
self.mouse_left_button_press_flag = None
self.set_ui()
def set_ui(self):
self.resize(300, 300)
self.setWindowTitle("主窗口")
# 如果设置了鼠标跟踪,鼠标移动即调用mouseMoveEvent方法,需在mouseMoveEvent方法中设置条件判断
self.setMouseTracking(True)
self.show()
def mousePressEvent(self, a0) -> None:
if a0.button() == Qt.LeftButton:
self.mouse_left_button_press_flag = True
self.mouse_inital_x = a0.globalX()
self.mouse_inital_y = a0.globalY()
self.window_inital_x = self.x()
self.window_inital_y = self.y()
def mouseMoveEvent(self, a0) -> None:
if self.mouse_left_button_press_flag:
mouse_move_x = a0.globalX() - self.mouse_inital_x
mouse_move_y = a0.globalY() - self.mouse_inital_y
window_x = self.window_inital_x + mouse_move_x
window_y = self.window_inital_y + mouse_move_y
self.move(window_x, window_y)
def mouseReleaseEvent(self, a0) -> None:
self.mouse_left_button_press_flag = False
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())