【问题标题】:How to scroll to a selected item in a ScrolledListBox in python?如何滚动到python中的ScrolledListBox中的选定项目?
【发布时间】:2012-04-26 15:54:48
【问题描述】:

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

还有一个搜索栏允许用户搜索该数据库,而不是滚动浏览每个项目以找到他们需要的项目。当搜索返回True(进行了匹配)时,所需的信息显示在文本框中,更多选项显示在另一个列表框中(现在不滚动),但ScrolledListBox 不会自动滚动到所选项目,即使我我正在使用selection_set()list_box.active()

我明白了!我必须使用list_box.yview_scroll() 命令!这需要 2 个参数: 1)去哪里的整数/索引 2) 逐行或逐页(UNITS 或 PAGES)

但我确实发现 .see 方法更有效!

【问题讨论】:

  • 发布您尝试过的内容(并接受一些答案)。
  • (我没有意识到您必须单击检查才能接受答案)就像我说的:我尝试了 list_box.activate(index) 以及 list_boxselection_set(index) 还有一个,但我想不起来了。 index 也是需要选择的项目。

标签: python listbox scroll tkinter listboxitem


【解决方案1】:

Tkinter 没有 ScrolledListBox 类。您能否更具体地了解您正在使用哪个 ScrolledListBox 实现?

话虽如此,Tkinter 中的可滚动小部件通常具有see 方法,该方法将滚动到足以确保传入的索引可见。

在对此答案的评论中,您说您正在使用 pmw.ScrolledListBox。根据the documentation for the ScrolledListBox widget

此外,来自 Tkinter.Listbox 类的方法由这个 Megawidget 转发到列表框组件。

因此,您可以在该小部件上调用您可以在列表框小部件上调用的任何方法。正如我之前提到的,Listbox 类有一个see 方法,因此您应该能够执行以下操作:

the_widget.see(index)

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

【讨论】:

  • 我为此使用了 python mega 小部件模块(Pmw),它确实是一个 ScrolledListBox。使用 Python 2.7 –
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多