0

右ボタンが選択される方法に問題があります。座標が苦手なので、選択方法を逆にする方法がわかりません。リストボックスの選択をマウスの方向にスクロールしたいのですが、現在のように逆にスクロールするのではありません。マウスを上下に動かすときに、リストボックス内の次の項目を選択するだけです。

from Tkinter import *

def _select(y):
    row = lb.nearest(y)
    lb.selection_clear(0, END)
    lb.selection_set(row)

def _b2motion(x, y):
    lb.scan_dragto(x, y)
    _select(y)
    return 'break'


root = Tk()

sb = Scrollbar(root)
lb =Listbox(root, width=20,yscrollcommand=sb.set)

lb.bind('<B3-Motion>', lambda e: _b2motion(e.x, e.y))
sb.config(command=lb.yview)

lb.grid(row=0,column=0)
sb.grid(row=0,column=1,sticky=N+S)


for x in range(50):
    lb.insert(END, x)

mainloop()
4

1 に答える 1

1

モーションボックスのyの記号を反転すると、スクロールの方向が変わります。遅くする必要がある場合は整数で割ります。私は3が好きでした。

def _b2motion(x, y):
    lb.scan_dragto(x, (-y/3)) #here
    _select(y)
    return 'break'

残りの問題が何であるかわかりません...左ボタンが右ボタンで行うことを再現しようとしていますか?

于 2012-07-23T19:18:17.153 に答える