【问题标题】:Python/kivy : use key ctrl+n keyboard interface in kivyPython/kivy : 在 kivy 中使用 key ctrl+n 键盘界面
【发布时间】:2018-04-10 08:50:42
【问题描述】:

我正在使用 python-2.7kivy-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')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-18
        • 2014-08-14
        • 2017-03-19
        • 1970-01-01
        • 1970-01-01
        • 2017-10-10
        • 1970-01-01
        • 2018-08-28
        相关资源
        最近更新 更多