【问题标题】:wxPython Key Bindings don't work on LinuxwxPython 键绑定在 Linux 上不起作用
【发布时间】:2015-07-28 14:58:06
【问题描述】:

以下程序适用于 Windows,但不适用于 Linux。当我按下绑定的键时,没有显示打印语句。但是,tab 键可以在两个按钮之间切换,而 enter 和 space 键可以切换它们。其他键都不起作用。

import wx

class MyForm(wx.Frame):
    def __init__(self):
            wx.Frame.__init__(self, None, wx.ID_ANY, "Pressing dem keyz")

            # Add a panel so it looks the correct on all platforms
            panel = wx.Panel(self, wx.ID_ANY)
            self.btn = wx.ToggleButton(panel, label="TOGGLE")
            self.btn2 = wx.ToggleButton(panel, label="TOGGLE 2", pos = (85,0))

            self.btn.Bind(wx.EVT_CHAR_HOOK, self.onKeyPress)
            self.btn2.Bind(wx.EVT_CHAR_HOOK, self.onKeyPress)

    def onKeyPress(self, event):
            space = False
            keycode = event.GetKeyCode()
            print keycode
            if keycode == wx.WXK_SPACE: 
                    print "SPACEBAR!"
                    space = True
            self.btn.SetValue(space)
            if space == True:
                    print "Do something"
            elif keycode == wx.WXK_RETURN:
                    self.Hello()
            elif keycode == wx.WXK_LEFT:
                    self.btn2
                    print 'YOU MOVED LEFT'
            elif keycode == wx.WXK_RIGHT:
                    self.btn
                    print 'YOU MOVED RIGHT'
            elif keycode == wx.WXK_UP:
                    print 'YOU MOVED UP'
            elif keycode == wx.WXK_DOWN:
                    print 'YOU MOVED DOWN'
            elif keycode == wx.WXK_ESCAPE:
                    self.Destroy()
    def Hello(self):
            print "Hello"
            return
 # Run the program
if __name__ == "__main__":
        app = wx.App(False)
        frame = MyForm()
        frame.Show()
        app.MainLoop()

【问题讨论】:

    标签: python linux button wxpython key-bindings


    【解决方案1】:

    实际上,EVT_KEY_UP
    这消除了按住键会产生多个按键事件的问题。

    【讨论】:

      【解决方案2】:

      不要使用 EVT_CHAR_HOOK,而是使用 EVT_KEY_DOWN。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多