如何在Kivy中创建keybinding(Ctrl+O)?

2024-05-16 05:20:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Kivy(Ctrl+O)创建一个可以附加事件的keybinding。我看到Kivy Inspector模块也在做类似的事情,但我不确定如何复制功能。在

我想让keybinding在Kivy应用程序上工作,所以我想它必须绑定到window/root小部件。在

以前有人这样做过吗?谢谢!在


Tags: 模块功能应用程序inspector部件事件rootwindow
1条回答
网友
1楼 · 发布于 2024-05-16 05:20:19

正如您所说的inspector模块正是您所要查找的,所以您不会打开代码并找到答案?毕竟是Python:)。在

{文件是^ a1}

搜索作为检查器使用的快捷方式的ctrl是“ctrl+e”get的usthis。示例:

def keyboard_shortcut(self, win, scancode, *largs):
    modifiers = largs[-1]
    if scancode == 101 and modifiers == ['ctrl']:
        self.activated = not self.activated
        ...
        ...
        ...

这似乎是在听键盘并检查输入是否与“ctrl”和“e”匹配

^{pr2}$

但是我们不知道如何/从哪里调用这个函数?我们来搜索函数名:

 `keyboard_shortcut`

我们得到this。在

win.bind(children=ctx.inspector.on_window_children,
        on_keyboard=ctx.inspector.keyboard_shortcut)

win是window的一个实例,因为我们想全局绑定到一个键盘快捷键,我们将绑定到窗口的on_keyboard事件。在

窗口的on_keyboard事件是什么?让我们来看看kivy文档中的search for ^{}。在

第四个链接kivy.core.window.Keyboard(Python类,in Window)似乎很有趣。 在这个链接之后,他们甚至有一个使用窗口.键盘并解释on_keyboard事件{a6}。在

遵循上面的所有资源,您应该能够全局绑定到快捷方式,以便对其作出反应。在

希望这有帮助。在

相关问题 更多 >