我正在使用glade和gtk创建一个'C'项目。我想关注命名txt_abc的gtkentry字段,所以我调用了函数:
gtk_widget_grab_focus (txt_abc);
在txt_abc小部件命名txt_def之后还有另一个gtkentry小部件。
我的问题是,当我运行应用程序时,光标不是专注于txt_abc小部件,而是自动将焦点集中在txt_def小部件上。
还有一件事,当我通过调用代码来设置焦点在txt_def小部件时:
gtk_widget_grab_focus (txt_def);
控件再次集中在窗口上的下一个窗口小部件,即txt_name。
我希望焦点完全放在我设置抓取信号的小部件上。
如何解决此问题。
答案 0 :(得分:0)
无法重现。写一个小的测试用例来演示你的问题。 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 ()