我正在开发一个显示大型项目数据库的应用程序。
还有一个搜索栏,允许用户搜索该数据库,而不是滚动浏览每个项目来查找他们需要的项目。当搜索返回 True 时(已进行匹配),所需信息将显示在文本框中,更多选项将显示在另一个列表框中(现在不滚动),但 ScrolledListBox 不会显示即使我使用 selection_set()
或 list_box.active()
,也会自动滚动到所选项目。
我明白了!我必须使用 list_box.yview_scroll()
命令!这需要两个参数:
1) 要去哪里的整数/索引
2)逐行或按页(UNITS或PAGES)
但我确实发现 .see 方法更有效!
最佳答案
Tkinter 没有 ScrolledListBox 类。您能否更具体地说明您正在使用哪种 ScrolledListBox 实现?
话虽这么说,Tkinter 中的可滚动小部件通常有一个 see
方法,该方法将滚动到足以确保传入的索引可见。
在此答案的评论中,您说您正在使用 pmw.ScrolledListBox。根据the documentation for the ScrolledListBox widget :
In addition, methods from the Tkinter.Listbox class are forwarded by this megawidget to the listbox component.
因此,您可以在该小部件上调用您可以在列表框小部件上调用的任何方法。正如我之前提到的,Listbox 类有一个 see
方法,因此您应该能够执行以下操作:
the_widget.see(index)
在上面的示例中,index
是列表框中您想要查看的行。
关于python - 如何在Python中滚动到ScrolledListBox中的选定项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10155153/