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 的 mac 上发生(Mac 上推荐的 Python >= 2.7.10 版本,包括 Python 3)。使用 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 的主题小部件版本并不能解决问题。