0

画像を表示するために使用している 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)

繰り返しますが、これは上スクロールと左スクロールでのみ機能します。このメソッドが下にスクロールして右にスクロールできない理由はありますか?

編集:下にスクロールして右にスクロールするための条件が実行されていますが、何もしていません。

ありがとうございました

4

0 に答える 0