1
を解決するために、IEのようなコマンド履歴をナビゲート異なる機能を実行するために矢印キーをバインドされていますターミナル。私たちは歴史のナビゲーションを回すことができるように完了ポップアップは、アクティブ/表示されている場合Gtk.EntryCompletion()ポップアップのステータスが、私は<strong>Gtk.EntryCompletion()</strong>と<strong>Gtk.Entry()</strong>を持っているキーバインド競合
しかし、履歴ナビゲーションと完了ポップアップ意志、競合上のナビゲーションは、チェックする方法はあります。
さらに、合計一致回数を取得する方法は完了ポップアップですか?
以下はサンプルプログラムです。
#!/usr/bin/env python3
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
entry = Gtk.Entry()
def on_key_press(widget, event):
# NOTE to stop propagation of signal return True
if event.keyval == 65362: widget.set_text("history -1") # Up-arrow
elif event.keyval == 65364: widget.set_text("history +1") # Down-arrow
entry.connect('key_press_event', on_key_press)
entrycompletion = Gtk.EntryCompletion()
entry.set_completion(entrycompletion)
liststore = Gtk.ListStore(str)
for row in "entry complete key conflit with history".split():
liststore.append([row])
entrycompletion.set_model(liststore)
entrycompletion.set_text_column(0)
root = Gtk.Window()
root.add(entry)
root.connect('delete-event', Gtk.main_quit)
root.show_all()
Gtk.main()
ありがとう、この問題はこの問題を解決できないほどイライラしていました。 – rho
最後に完全に解決しました。今、私は平和で眠ることができます。 **不一致**があったときにエントリのフォーカスを失うという問題があった場合、信号の伝播を止めれば、エントリから迷子になった場合、オートコンプリート提案をナビゲートできなくなります。 **カーソルオンマッチ**シグナルは、ユーザーが定義した後にのみ表示されます** key_press_event **。 ** Gtk.Widget **の**フォーカス**信号を使用して解決しました – rho