我需要在滾動面板中繪製圖片(以評論它)。我遇到了麻煩,因爲當我放大或縮小它時,它的行爲不正確。它會停止繪圖,然後在錯誤的地方顯示一段時間。就在窗口的左上角。並沒有正確地畫線。下面的 是(onLeftDown
)函數的代碼(應繪製的按鈕)。右鍵事件(放大)。希望已經夠清楚了。在wxpython中縮放圖片時出現問題
你們有什麼想法,我該如何解決?
由於事先
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()使用不同的縮進,然後使用上一行和下一行代碼。也許這是你的問題? – 2010-01-11 11:50:35
不,這不是問題。沒有縮進錯誤,但此網頁上的縮進錯過了。不知道如何在這裏修復它。 – 2010-01-11 12:47:27
'self.HasCapture()和event.Dragging():'這一行應該表示什麼? – SilentGhost 2010-01-11 13:18:52