Как установить фокус для виджета Tkinter?

У меня есть простое приложение Python + Tkinter, которое отображает список из 10 элементов :

import Tkinter, ttk
list = ttk.Treeview( Tkinter.Tk() )
list.pack( fill = Tkinter.BOTH, expand = 1 )
items = [ list.insert( '', 'end', text = str( i ) ) for i in range( 10 ) ]
list.selection_set( items[ 0 ] )
list.focus_set() # This is not working - list has no focus :(
Tkinter.mainloop()

. Можно ли изменить его, чтобы после запуска приложения список был в фокусе, и я мог перемещать выбор с помощью стрелок вверх и вниз? После запуска приложения окно приложения имеет фокус, но я не могу перемещать выделение с помощью стрелок, пока не щелкну мышью по списку :(. Я пробовал разные комбинации focus_set()и focus_force(), но это не работает.

Проверено с помощью Python 2.7 в Windows 7, OSX 10.7 и Ubuntu 12.04

ОБНОВЛЕНИЕ

Если "Treeview" изменить на какой-то другой виджет, например на "Кнопку", фокус работает. Так что кажется, что я как-то неправильно установил фокус для Treeview.

9
задан grigoryvp 30 June 2012 в 21:08
поделиться