我有一个wx.ScrolledWindow,我正用它来显示图像。我有一个鼠标和键盘事件设置,以便当用户拿着空格键并拖动鼠标时,ScrolledWindow应该用鼠标移动移动,显示图像的不同部分。我可以让ScrolledWindow向上和向左滚动,但不能向右或向下滚动。这是一个奇怪的错误,我无法弄清楚。有没有人有任何想法?
以下代码应该将Scrollbar增加或减少1.我通过查找Scrollbar的初始位置(init_pos_x和init_pos_y),然后使用Scroll(x,y)方法更新位置来执行此操作。
我通过使用获得初始坐标(我认为这可能是问题):
init_pos_x, init_pos_y = self.scroll.GetViewStart()
previous_x和previous_y是用户鼠标的先前位置。 x和y是用户鼠标的新位置。
if self.previous_y < y: # Scroll up (user drags down)
self.scroll.Scroll(init_pos_x, init_pos_y - 1)
elif self.previous_y > y: # Scroll down (user drags up)
self.scroll.Scroll(init_pos_x, init_pos_y + 1)
elif self.previous_x < x: # Scroll left (user drags right)
self.scroll.Scroll(init_pos_x - 1, init_pos_y)
elif self.previous_x > x: # Scroll right (user drags left)
self.scroll.Scroll(init_pos_x + 1, init_pos_y)
重申一下,这只适用于向上滚动和向左滚动。是否有任何理由这种方法无法向右滚动和向右滚动?
编辑:正在执行向下滚动和向右滚动的条件,但它没有做任何事情。
谢谢