所以我有一個無框QDialog,我希望能夠通過點擊和拖動來移動它。給定下面的代碼,拖動對話框始終將對話框的左上角(0,0)捕捉到鼠標。我該如何規避這個問題,或者說,數學可能會是什麼呢?用MouseMoveEvent移動一個無框QDialog
標準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
非常好!這工作,我已經更新了上面的代碼,以顯示我到目前爲止的位置。現在,我需要能夠在與對話框相關的位置抓住鼠標,因爲每當我左鍵單擊拖動對話框時,對話框的左上角就會捕捉到鼠標。 – Cryptite 2011-04-28 21:59:38
你已經解決了這個問題嗎?我的鼠標對齊的對話框的左上角..我無法擺脫它 – apelliciari 2011-05-23 15:56:28
不,我還沒有,我剛剛處理它現在堅持。希望有人能出面幫忙。 – Cryptite 2011-07-27 20:18:16