0

我正在使用 glade 和 gtk 创建一个“C”项目。我想关注一个名为 txt_abc 的 gtkentry 字段,因此我调用了该函数:

gtk_widget_grab_focus (txt_abc);

在 txt_abc 小部件命名为 txt_def 之后还有另一个 gtkentry 小部件。

我的问题是,当我运行应用程序时,光标自动聚焦在 txt_def 小部件上,而不是关注 txt_abc 小部件。

还有一件事,当我通过调用代码将焦点设置在 txt_def 小部件时:

gtk_widget_grab_focus (txt_def);

控件再次集中在窗口上的下一个小部件上,即 txt_name。

我希望将焦点完全放在我正在设置抓取信号的小部件上。

如何解决这个问题。

4

1 回答 1

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 ()
于 2012-05-29T20:19:35.500 回答