0

私はグレードとgtkで「C」プロジェクトを作成しています。txt_abc という名前の gtkentry フィールドに注目したいので、関数を呼び出しました。

gtk_widget_grab_focus (txt_abc);

txt_def という名前の txt_abc ウィジェットの直後に別の gtkentry ウィジェットがあります。

私の問題は、txt_abc ウィジェットにフォーカスするのではなく、アプリケーションを実行しているときに、カーソルが自動的に txt_def ウィジェットにフォーカスされることです。

もう1つ、コードを呼び出して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 に答える