我正在开发一个显示大型项目数据库的应用程序。

还有一个搜索栏,允许用户搜索该数据库,而不是滚动浏览每个项目以找到他们需要的项目。当搜索返回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


  另外,此megawidget将Tkinter.Listbox类中的方法转发到listbox组件。


因此,您可以在该小部件上调用可以在列表框小部件上调用的任何方法。如前所述,Listbox类具有see方法,因此您应该能够执行以下操作:

the_widget.see(index)


在上面的示例中,index是您要查看的列表框中的行。

10-05 20:36