質問

ESCが押されたときにコンテンツをクリアするエントリウィジェットを作成しようとしていました。
これが私が試したものです -

class MyWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self)
        editor = Gtk.Entry()
        self.add(editor)
.

ウィジェットをどのように接続するかわかりません。ESCはKeyPressですが、エントリがフォーカス中のときにキープレスが発生するはずです。私は完全に失われています。

ESCが押されたときにクリアするエントリを作るのを手伝ってください。

役に立ちましたか?

解決

Entryウィジェットの押下またはリリースされているキーに関する通知を受信するには、Gtk.Entryまたは"key-press-event""key-release-event"を接続できます。エントリがフォーカス中にある必要があるキープレス/リリースイベントを受信したときにコールバックが呼び出されます。Escapeキーが押されたかどうかを確認するには、コールバックに渡されたイベントを利用できます。keyval(Gdk.Event.KEY_PRESSGdk.Event.KEY_RELEASEに関連付けられています)を確認できます。Gdk.KEY_*を使用して、押されたか解放されたキーの値を確認できます。あなたは:の行に何かを試すことができます:

...
    def on_key_release(self, widget, ev, data=None):
        if ev.keyval == Gdk.KEY_Escape: #If Escape pressed, reset text
            widget.set_text("")
...
    def __init__(self):
        Gtk.Window.__init__(self)
        editor = Gtk.Entry()
        editor.connect("key-release-event", self.on_key_release)   
        self.add(editor)
.

あなたを助けるためにオンラインで公正な量のドキュメンテーションがあります。
これが役立つことを願っています!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top