wxPython ScrolledWindow не прокручивается вправо или вниз
У меня есть wx.ScrolledWindow, которое я использую для отображения изображений. У меня установлено событие мыши и клавиатуры, чтобы, когда пользователь удерживает клавишу пробела и перетаскивает свою мышь, ScrolledWindow должен двигаться с движением мыши, отображая разные части изображения. Я могу заставить ScrolledWindow прокручивать вверх и влево, но не вправо или вниз. Это странная ошибка, которую я не могу понять. У кого-нибудь есть какие-либо идеи?
Следующий код должен увеличить или уменьшить полосу прокрутки на 1. Я делаю это, находя начальное положение полосы прокрутки (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)
Повторюсь, это работает только для прокрутки вверх и прокрутки влево. Есть ли причина, по которой этот метод не будет работать для прокрутки вниз и прокрутки правильно?
РЕДАКТИРОВАТЬ: Условия выполняются для прокрутки вниз и прокрутки вправо, но он просто ничего не делает.
Спасибо