스크롤 된 패널에서 이미지 위에 그림을 그릴 필요가 있습니다. 그것을 확대하거나 축소 할 때 올바르게 동작하지 않기 때문에 문제가 있습니다. 그리기를 멈추고 잠시 후 잘못된 곳에서 그것을 보여줍니다. 창 오른쪽 상단 모서리에 있습니다. 라인을 올바르게 그려 내지 않습니다. 아래 은 (onLeftDown
) 함수 (그려야하는 버튼)의 코드입니다. 오른쪽 버튼 이벤트 (확대). 그것이 충분히 명확하길 바란다.wxpython에서 그림을 확대/축소 할 때 문제가 발생했습니다.
너희들은 무슨 일이 일어나고 있는지 그리고 어떻게 해결할 수 있는지 알고 있니? 당신이 userScale = 2를 사용하는, 그래서 만약 당신이,이 도면의 스케일링과 동기화되도록 마우스 좌표를 확장 할 필요가
def OnLeftButtonEvent(self, event):
self.curLine = []
self.x, self.y = event.GetPositionTuple()
self.CaptureMouse()
def OnMotion(self, event):
if self.HasCapture() and event.Dragging():
dc = wx.BufferedDC(None,self.buffer)
dc.SetUserScale(self.scale,self.scale)
# to zoom in and out (increases whenever someone presses the right mouse button
dc.BeginDrawing()
dc.SetPen(wx.Pen(wx.BLUE, 3))
coords = (self.x, self.y) + event.GetPositionTuple()
self.curLine.append(coords)
dc.DrawLine(*coords)
self.x, self.y = event.GetPositionTuple()
self.SetXY(event)
dc.EndDrawing()
def OnRightDown(self,event):
print self.scale
self.scale=self.scale*2.0
self.initDrawing()
self.maxHeight=self.maxHeight*2
self.maxWidth=self.maxWidth*2
게시 한 원본 코드가 실제 코드 인 경우 가장 큰 공백을 사용하면 문제가 발생합니다. OnRightDown에서 self.initDrawing()은 이전 및 다음 코드 줄 다음에 들여 쓰기를 사용합니다. 아마도 그것은 당신의 문제입니까? –
그게 문제가 아니에요. 들여 쓰기 오류가 없지만이 웹 페이지의 들여 쓰기가 누락되었습니다. 여기에서 그것을 고치는 법을 모른다. –
'self.HasCapture() 및 event.Dragging() :'이 줄은 무엇을 의미합니까? – SilentGhost