イベントをアタッチできるキーバインド (Ctrl + O) を Kivy で作成したいと考えています。Kivy Inspector モジュールが同様のことを行っていることがわかりますが、機能を複製する方法がわかりません。
キーバインドをすべての Kivy アプリケーションで機能させたいので、ウィンドウ/ルート ウィジェットにバインドする必要があると思います。
誰もこれを以前にやったことがありますか?ありがとう!
あなたが言うように、インスペクタモジュールはあなたが探しているものを正確に実行するので、コードを開いて調べませんか? 結局のところ、それはPythonです:)。
これはファイルinspector.pyです
インスペクタが使用するショートカットとしての検索ctrl
は 'ctrl+e' get's us this .::
def keyboard_shortcut(self, win, scancode, *largs):
modifiers = largs[-1]
if scancode == 101 and modifiers == ['ctrl']:
self.activated = not self.activated
...
...
...
これはキーボードを聞いて、入力が「ctrl」と「e」に一致するかどうかを確認しているようです
if scancode == 101 and modifiers == ['ctrl']:
しかし、この関数がどこからどのように呼び出されるのかわかりませんか? それでは、関数名を検索してみましょう::
`keyboard_shortcut`
これを取得します。
win.bind(children=ctx.inspector.on_window_children,
on_keyboard=ctx.inspector.keyboard_shortcut)
win は window のインスタンスです。グローバルにキーボード ショートカットにバインドしたいのでon_keyboard
、Window のイベントにバインドします。
on_keyboard
Windowのこのイベントは何ですか?kivy ドキュメントで検索しwindow
てみましょう。
4 番目のリンクkivy.core.window.Keyboard (Python クラス、ウィンドウ内) は興味深いようです。on_keyboard
そのリンクをたどると、 Window.keyboard の使用例があり、イベントについても説明されているようです。
上記のすべてのリソースに従って、ショートカットにグローバルにバインドして、それに反応できるようにする必要があります。
これが役立つことを願っています。