以下代碼可以實現點擊窗口任意位置進行窗口拖動。
def mousePressEvent(self, e):
if e.button() == Qt.LeftButton:
self.m_drag = True
self.m_DragPosition = e.globalPos() - self.pos()
e.accept()
self.setCursor(QCursor(Qt.OpenHandCursor))
def mouseReleaseEvent(self, e):
if e.button() == Qt.LeftButton:
self.m_drag = False
self.setCursor(QCursor(Qt.ArrowCursor))
def mouseMoveEvent(self, e):
if Qt.LeftButton and self.m_drag:
self.move(e.globalPos() - self.m_DragPosition)
e.accept()
mousePressEvent——鼠標點擊事件
mouseMoveEvent——鼠標移動事件
mouseReleaseEvent——鼠標釋放事件
self.move(x,y)——是將當前控件移動的父控件的某個位置,x,y是父控件的座標。
(注意:是移動到父控件的(x,y)位置,不是以當前位置爲基準進行移動)