gtk_widget_grab_focus() автоматически перейти к следующему полю?
Я создаю проект 'C' с полянами и gtk. Я хочу сосредоточиться на поле gtkentry с именем txt_abc и поэтому я вызвал функцию:
gtk_widget_grab_focus (txt_abc);
Сразу после имени txt_abc появляется другой виджет gtkentry с именем txt_def.
Моя проблема вместо того, чтобы фокусироваться на виджете txt_abc, курсор автоматически фокусируется на виджете txt_def, когда я запускаю приложение.
Еще одна вещь, когда я устанавливаю фокус на виджете txt_def, вызывая код:
gtk_widget_grab_focus (txt_def);
элемент управления снова фокусируется на следующем виджете в окне, т.е. txt_name.
Я хочу сфокусироваться именно на виджете, который я устанавливаю для захвата сигнала.
Как решить эту проблему.
1 ответ
Решение
Не могу воспроизвести. Напишите небольшой тестовый пример, демонстрирующий вашу проблему. В Python легко экспериментировать.
import gtk
window = gtk.Window ()
box = gtk.VBox ()
window.add (box)
for k in range (5):
box.add (gtk.Entry ())
window.show_all ()
window.connect ('destroy', lambda *ignored: gtk.main_quit ())
box.children () [2].grab_focus () # <--- works fine
gtk.main ()