gpt4 book ai didi

python - wxpython 在 wx.Frame 中捕获键盘事件

转载 作者:太空狗 更新时间:2023-10-30 00:46:29 24 4
gpt4 key购买 nike

我正在 try catch 发生在 wx.Frame 中的键盘事件,我希望以下代码能够捕获这些事件。但是,当我运行代码时,永远不会调用处理程序 OnKeyDown:

import logging as log
import wx

class MainWindow(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(200,100))

self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
self.Bind(wx.EVT_KEY_UP, self.OnKeyDown)
self.Bind(wx.EVT_CHAR, self.OnKeyDown)
self.SetFocus()
self.Show(True)

def OnKeyDown(self, event=None):
log.debug("OnKeyDown event %s" % (event))

if __name__ == "__main__":
app = wx.App(False)
gui = MainWindow(None, "test")
app.MainLoop()

如果有人知道如何执行此操作,我将不胜感激。

最佳答案

我发现我可以在框架中添加一个面板,而且面板更容易接受键盘事件。

import wx

class MainWindow(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, title=title, size=(200,100))

self.panel = wx.Panel(self, wx.ID_ANY)
self.panel.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
self.panel.Bind(wx.EVT_KEY_UP, self.OnKeyDown)
self.panel.Bind(wx.EVT_CHAR, self.OnKeyDown)
self.panel.SetFocus()
self.Show(True)

def OnKeyDown(self, event=None):
print "Event!"

if __name__ == "__main__":
app = wx.App(False)
gui = MainWindow(None, "test")
app.MainLoop()

关于python - wxpython 在 wx.Frame 中捕获键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8707160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com