0

tkinter には、マウス ポインターとtkinter.Scrollbar. スクロールバーのスライダーは、図に示されている位置になく、マウス ポインターのスライドと同じ速度で移動しません。それはそれを使用することを非常に困難にします。以下は、 http : //effbot.org/tkinterbook/scrollbar.htmから借用したサンプル コードです。

#!/usr/bin/env python3 # python 3.4.3 using ActiveTcl 8.5.18
#!/usr/bin/env python # python 2.7.10 using ActiveTcl 8.5.18
#!/usr/bin/python # os-x-native python 2.7.5 using os-x-native Tcl 8.5.9 [WORKS]

# Example from http://effbot.org/tkinterbook/scrollbar.htm
try:
    # Python2
    import Tkinter as tk

except ImportError:
    # Python3
    import tkinter as tk
    import tkinter.ttk as ttk

import sys

master = tk.Tk()

# print version info:
sys.stdout.write("Python: %s.%s.%s\nTcl: %s\n" % (sys.version_info[0], sys.version_info[1], sys.version_info[2], tk.Tcl().eval("info patchlevel")))

# scrollbar = ttk.Scrollbar(master)
scrollbar = tk.Scrollbar(master)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)

listbox = tk.Listbox(master, yscrollcommand=scrollbar.set)
for i in range(1000):
    listbox.insert(tk.END, str(i))
listbox.pack(side=tk.LEFT, fill=tk.BOTH)

scrollbar.config(command=listbox.yview)

tk.mainloop()

スライダーをクリックしてドラッグしてみてください。うまくいきません。スライダーのをクリックしてドラッグすると、機能します。マウスに反応するスライダーが視覚的なスライダーに対応していないようです。また、ドラッグ時のスライダーの移動速度がマウスの速度に対応していない...

これは、ActiveTcl 8.5.18 (Python 3 を含む Python >= 2.7.10 の Mac で推奨されるバージョン) を使用する Mac でのみ発生します。osx-native python 2.7.5 および osx-native Tcl 8.5.9 (os x 10.9.5) を使用すると、すべて正常に動作します。

この問題は、python 3.4.3 および Tcl 8.6.1 を使用する Linux では発生しませんが、Windows では不明です。

誰かが回避策/修正を知っていますか? Scrollbar のテーマ ウィジェット バージョンを使用しても、問題は解決しません。

4

1 に答える 1