그래서 프레임리스 QDialog를 클릭하고 드래그하여 간단히 이동할 수 있기를 원합니다. 아래 코드가 주어지면 대화 상자를 드래그하면 항상 대화 상자의 가장 왼쪽 상단 (0,0)이 마우스로 스냅됩니다. 어떻게하면 이것을 피할 수 있을까요, 아니면 수학이 그걸 위해 무엇을 할 수 있을까요? 다음과 같은 기본 서브 클래스와Frameless QDialog를 MouseMoveEvent로 이동
표준 인 QDialog가 :
대신 event.pos의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
그 문제를 해결 했습니까? 내 마우스도 대화 상자의 왼쪽 상단에 스냅합니다. 나는 그것을 제거 할 수 없습니다. – apelliciari
아니요, 아직 없습니다, 지금 막 고집했습니다. 바라건대 누군가가 찾아와 도와 줄 수 있기를 바랍니다. – Cryptite