所以我有一个无框架的 QDialog,我希望能够通过单击并拖动它来移动它。给定下面的代码,拖动对话框总是将对话框的最左上角 (0,0) 捕捉到鼠标。我该如何规避这一点,或者更确切地说,它的数学原理是什么?
具有以下基本子类的标准 QDialog:
class Main(QtGui.QDialog):
def __init__(self, args):
QtGui.QDialog.__init__(self)
def mouseMoveEvent(self, event):
super(Main, self).mouseMoveEvent(event)
if self.leftClick == True: self.moveWindow(event.globalPos())
def mousePressEvent(self, event):
super(Main, self).mousePressEvent(event)
if event.button() == QtCore.Qt.LeftButton:
self.leftClick = True
def mouseReleaseEvent(self, event):
super(Main, self).mouseReleaseEvent(event)
self.leftClick = False