【发布时间】:2017-11-30 04:39:13
【问题描述】:
假设在 Tkinter 中你在一个窗口中有一个特定大小的列表框。然后假设您向该列表框添加了一个大于该大小的字符串。如果您突出显示该元素并将其拖到一边,列表框将自动“滚动”自身,以便您可以看到完整的元素。有没有办法禁用这个不运行重复尝试将滚动设置为 0 的线程?
import tkinter
root = tkinter.Tk()
listbox = tkinter.Listbox(root)
listbox.insert("end", "Minimal, Complete, and Verifiable example")
listbox.pack()
root.mainloop()
quit()
【问题讨论】:
-
如果没有人能提供更优雅的东西,我现在有一个临时解决方案。将
root.after(50, reset_scroll)分配给根窗口并在框上调用 .xview(0) 后重置滚动执行相同的操作。 -
向问题添加示例,如果您单击并拖动以突出显示该元素,则列表框将自动滚动。我希望禁用此功能。
-
出于好奇,为什么要删除此功能?您的程序的用户似乎希望能够看到长条目。
-
这可能突出了我设计中的一个潜在问题,但我正在制作一个通过 3 个列表框进行交互的游戏。当打包到 800x600(最小尺寸)的窗口中时,列表框的元素长度永远不会超过应有的长度。出于组织目的,我在列表框中的元素之间放置了分隔符。分隔符是字符(“━”*100),因此它们占据了框的宽度。然而,问题出现了,我在框中有一个元素比宽度长,这导致了前面的问题。 i.imgur.com/FCVBFcq.png
标签: python python-3.x tkinter listbox