Keine Reaktion auf Tastendruck in einem Frame
Verfasst: Freitag 30. November 2007, 07:23
Hallo zusammen, ich suche jetzt schon ne ganze Weile, komme aber nicht weiter.
Und zwar möchte ich ganz simpel, dass beim Focus auf einem Frame, auf
die F1 Taste reagiert wird und sich eine Aboutbox öffnet.
Hier mal ein kleiner Testcode in dem ich nur dieses Vorhaben ausprobiere:
Ich hab das auch mal mit Registerhotkey ausprobiert aber irgendwie kann ich mir nicht vorstellen, dass eine solche Funktionalität nur unter Windows funktioniert.
Weiß jemand ne Lösung?
Und zwar möchte ich ganz simpel, dass beim Focus auf einem Frame, auf
die F1 Taste reagiert wird und sich eine Aboutbox öffnet.
Hier mal ein kleiner Testcode in dem ich nur dieses Vorhaben ausprobiere:
Code: Alles auswählen
#!/usr/bin/env python
import wx
class MyFrame(wx.Frame):
def __init__(self, *args, **kwds):
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.button_1 = wx.Button(self, -1, "button_1")
self.__set_properties()
self.__do_layout()
self.Bind(wx.EVT_BUTTON, self.OnButton, self.button_1)
# Warum bekomme ich keine Reaktion?
self.Bind(wx.EVT_KEY_DOWN, self.OnButton, id=wx.WXK_F1)
def __set_properties(self):
self.SetTitle("frame_1")
def __do_layout(self):
sizer_1 = wx.BoxSizer(wx.VERTICAL)
sizer_1.Add(self.button_1, 0, 0, 0)
self.SetSizer(sizer_1)
sizer_1.Fit(self)
self.Layout()
def OnButton(self, evt):
info = wx.AboutDialogInfo()
info.Name = "Hello World"
wx.AboutBox(info)
if __name__ == "__main__":
app = wx.PySimpleApp(0)
wx.InitAllImageHandlers()
frame_1 = MyFrame(None, -1, "")
app.SetTopWindow(frame_1)
frame_1.Show()
app.MainLoop()
Weiß jemand ne Lösung?