そのため、フレームのない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