Как установить фокус на виджет 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
UPDATE
Если & quot; Treeview & quot; изменен на какой-то другой виджет, например «Кнопка», фокус работает. Так что кажется, что я как-то неправильно настроил фокус на Treeview.