【发布时间】:2011-01-03 17:27:20
【问题描述】:
我需要在滚动面板中绘制图像(以对其进行评论)。我遇到了麻烦,因为当我放大或缩小它时它的行为不正确。它停止绘制,然后在错误的位置显示一段时间。就在窗口的左上角。并且没有正确画线。
下面是 (onLeftDown) 函数(应该绘制的按钮)的代码。右键事件(放大)。希望它足够清楚。
你们知道发生了什么吗?我该如何解决?
提前致谢
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() and event.Dragging():这行应该是什么意思?
标签: python image wxpython drawing zooming