我正在用 Python/Tkinter 编写一个 GUI,其中包括一个带有滚动条的列表框。我已经让滚动条按预期运行(即您可以单击它并在列表框内容中向上/向下滚动),但是滚动条本身的行为方式有些问题。下图应该有助于澄清。
列表框大小为 8 行,仅包含 12 行,因此首先滑块应该大很多(滚动条长度的 2/3)。其次,每当我向下滚动时(无论我如何操作),滑块都会“粘”在栏的顶部。这使我无法使用向上快速滚动方法,您单击滑块上方但箭头下方 - 因此向上滚动仅限于使用箭头并一次走一行。向下快速滚动效果很好,尽管如前所述,滑块仍然“粘”在顶部。我可以单击并向下拖动滑块,但随后它会弹回顶部。单击箭头(向上或向下)正常工作。
我尝试在 ttk 中使用替代滚动条,但实际上并没有更好:
在这种情况下,滑块会填满整个栏,您不能快速滚动任何方向,向上或向下。抓取和拖动工作(不知何故),列表框滚动,但你没有视觉提示你离顶部或底部有多近。箭头(再次)正常工作。
简而言之,它是可用的,但非常有问题和奇怪。这只是在 Windows 操作系统上使用 Python/Tkinter 的一个已知限制吗?(我的机器有带有 SP 3 的 Windows XP(32 位)。它是 Python 版本 2.7.3。)