Ubuntu 13.10でGtk3でPython 2.7.4を使用しています。
ホットキーを使用して Gtk ウィンドウを非表示および表示するために、Keybinder ライブラリを使用しています。現在、ホットキーを使用してウィンドウが表示されても、常にフォーカスされるとは限りません。
関連するコードは次のとおりです。
def toggle(self, key, data):
if self.hidden:
self.hidden = False
self.set_keep_above(True)
self.set_accept_focus(True)
self.present()
self.enteredName.grab_focus()
else:
self.hidden = True
self.hide()
ここでself
は、Gtk ウィンドウを指しself.enteredName
、タイプのウィジェットですGtk.Entry()
。
通常、 、 、 の組み合わせがset_accept_focus()
機能set_keep_above()
しpresent()
ます。がないset_keep_above
と、ウィンドウが上に上がりません。がないとset_accept_focus
、私のウィンドウはキーボード フォーカスを取得しません。
上記のセットアップは、アプリを起動してホットキーを使用してテストする (非表示と表示) ときに機能します。私のウィンドウは常にキーボード フォーカスを受け取ります。しかし、GVim ウィンドウを開いて、それにキーボード フォーカスを与えたとしましょう。ホットキーを押すと、ウィンドウが (GVim ウィンドウの上にさえ) 表示されますが、キーボード フォーカスは依然として GVim ウィンドウにあります。
いくつかの組み合わせを ( を追加して) 試しactivate
、テキスト ウィジェットにフォーカスを当てました。しかし、期待どおりに機能していません。
私がここに欠けているものはありますか?