2012-04-14 59 views
1

我正在開發一個應用程序,顯示項目的大型數據庫。如何滾動到Python中的ScrolledListBox中的選定項目?

還有一個搜索欄允許用戶搜索該數據庫,而不是滾動瀏覽每個項目以找到他們需要的項目。當搜索返回True(進行匹配)時,所需的信息顯示在文本框中,而在另一個列表框中有更多選項(現在不滾動),但ScrolledListBox不會自動滾動到所選項目,即使我正在使用selection_set()list_box.active()

我明白了!我不得不使用list_box.yview_scroll()命令!這需要2個參數: 1)要去哪裏的整數/索引 2)逐行或按頁(UNITS或PAGES)

但是我確實發現.see方法更高效!

+1

發佈您嘗試的內容(並接受一些答案)。 – gary 2012-04-14 17:15:22

+0

(我沒有意識到你必須點擊檢查來接受答案)就像我說的:我嘗試了list_box.activate(index)以及list_boxselection_set(index),還有一個,但我不記得它。索引也是需要選擇的項目。 – 2012-04-14 18:37:11

回答

0

Tkinter沒有ScrolledListBox類。你能更具體地說明你正在使用哪種ScrolledListBox實現嗎?這就是說,Tkinter中的可滾動窗口小部件通常有一個see方法,它將足夠滾動以確保傳入的索引是可見的。

在對此答案的評論中,您說您正在使用pmw.ScrolledListBox。根據the documentation for the ScrolledListBox widget

另外,從Tkinter.Listbox類的方法由該megawidget到列表框部件轉發。

因此,您可以調用該小部件上的任何方法,您可以調用Listbox小部件。正如我前面提到的,列表框類有一個see方法,所以你應該能夠做這樣的事情:

the_widget.see(index) 

在上面的例子index是你想看到列表框中的行。

+1

我爲此使用了python mega widget模塊(Pmw),它確實是一個ScrolledListBox。使用Python 2.7 - – 2012-04-14 18:47:10

+0

感謝您的幫助! – 2012-04-14 19:01:00