【问题标题】:Python/kivy : use key ctrl+n keyboard interface in kivyPython/kivy : 在 kivy 中使用 key ctrl+n 键盘界面
【发布时间】:2018-04-10 08:50:42
【问题描述】:
我正在使用 python-2.7 和 kivy-1.9.0。
我正在使用
键盘界面。有人可以告诉我按ctrl+n 键时如何触发事件吗?
我正在使用此代码,但它不起作用。
def _on_keyboard_down(self, keyboard, keycode, text, modifiers):
if keycode[1] == 'lctrl' and keycode[1] == 'n':
print('Event Fire')
【问题讨论】:
标签:
python-2.7
kivy
kivy-language
【解决方案1】:
当你按下 ctrl + n 时,ctrl 传入修饰符,它是一个列表,n 传入 keycode,它是一个元组。试试这个:
def _on_keyboard_down(self, keyboard, keycode, text, modifiers):
if keycode[1] == 'n' and 'ctrl' in modifiers:
print('Event Fire')
【解决方案2】:
在检查ctrl + n之前需要检查修饰符是否不是空列表。如果不检查,则会产生错误。
def __init__(self, **kwargs):
super(class_name, self).__init__(**kwargs)
Window.bind(on_key_down=self._on_keyboard_down)
def _on_keyboard_down(self, instance, keyboard, keycode, text, modifiers):
if len(modifiers) > 0 and modifiers[0] == 'ctrl' and text == 'n': # Ctrl+a
print("\nThe key", keycode, "have been pressed")
print(" - text is %r" % text)
print(" - modifiers are %r" % modifiers)
print('Event Fire')