ich habe eine Mini-Anwendung, die ich gern mit ESC beenden können möchte. Das Skelett sieht so aus:
Code: Alles auswählen
import wx
class MainFrame(wx.Frame):
def __init__(self, app, title):
wx.Frame.__init__(self, None, wx.ID_ANY, title, wx.DefaultPosition, wx.Size(400, 250))
self.app = app
self.Center()
self.panel = wx.Panel(self, wx.ID_ANY, style=wx.NO_BORDER)
self.panel.SetFocus()
self.Bind(wx.EVT_KEY_DOWN, self.down)
self.Bind(wx.EVT_KEY_UP, self.up)
self.vsizer = wx.BoxSizer(wx.VERTICAL)
self.vsizer.SetMinSize(wx.Size(200, 200))
self.message = wx.StaticText(self.panel, wx.ID_ANY, "Hi...")
self.vsizer.Add(self.message, 0, wx.TOP|wx.ALIGN_LEFT|wx.ALL, border=10)
self.listBox = wx.ListBox(self.panel, wx.ID_ANY, wx.Point(5, 5), wx.Size(10, 10))
self.vsizer.Add(self.listBox, 1, wx.BOTTOM|wx.EXPAND|wx.ALL, 5)
self.panel.SetSizerAndFit(self.vsizer)
self.panel.Layout()
def up(self, evt):
print "up", evt.KeyCode
def down(self, evt):
print "down", evt.KeyCode
class KeyTest(wx.App):
def __init__(self, *args, **kwargs):
wx.App.__init__(self, *args, **kwargs)
def OnInit(self):
self.mainFrame = MainFrame(self, "Key Test")
self.SetTopWindow(self.mainFrame)
self.mainFrame.Show()
return True
app = KeyTest()
app.MainLoop()
Unter Windows kommt gar nichts an, weder UP noch DOWN. Was muss ich unter Windows anders machen?
Danke
Tim