如何在Kivy中创建键绑定(Ctrl + O)?

时间:2013-03-28 20:44:09

标签: python kivy

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

我想对所有Kivy应用程序进行键绑定工作,所以我猜它必须绑定到窗口/根窗口小部件。

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

1 个答案:

答案 0 :(得分:4)

正如您所说,检查员模块完全符合您的要求,所以您不打开代码并找出答案吗?毕竟它是Python :)。

这是文件inspector.py

搜索ctrl作为检查员使用的快捷方式是'ctrl + e'得到我们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`

我们得到this

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

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

Window的on_keyboard事件是什么?在kivy文档中我们search for window

第四个链接kivy.core.window.Keyboard(Python类,在Window中)似乎很有趣。 关注该链接似乎他们甚至有一个使用Window.keyboard的例子,并解释了on_keyboard事件here

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

希望这是帮助。