Applikation "immer" per Escape verlassen
Verfasst: Donnerstag 24. Januar 2008, 12:53
Hallo zusammen,
ich suche eine Möglichkeit wie ich eine Applikation also das Hauptfenster per Escape Key schließen kann.
Ich habe dazu diese Lösung gefunden, allerdings hat diese den Nachteil das es nur funktioniert wenn der Focus auf dem entsprechenden Panel liegt.
Hab ich aber den Focus auf dem textCtrl dann zeigt das Escape drücken keine Wirkung.
Ich habe das ganze auch schon mit einer Acceleratortable ausprobiert. Aber dort wird irgendwie überhaupt nicht auf den Escape Key reagiert.
Muss ich nun für jedes widget das ich anlege das EVT_KEY_DOWN bestimmen damit mein Vorhaben funktioniert?
ich suche eine Möglichkeit wie ich eine Applikation also das Hauptfenster per Escape Key schließen kann.
Ich habe dazu diese Lösung gefunden, allerdings hat diese den Nachteil das es nur funktioniert wenn der Focus auf dem entsprechenden Panel liegt.
Hab ich aber den Focus auf dem textCtrl dann zeigt das Escape drücken keine Wirkung.
Code: Alles auswählen
#!/usr/bin/python
# keyevent.py
import wx
class KeyEvent(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title)
panel = wx.Panel(self, -1)
panel.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
panel.SetFocus()
text = wx.TextCtrl(panel, -1, "")
self.Centre()
self.Show(True)
def OnKeyDown(self, event):
keycode = event.GetKeyCode()
if keycode == wx.WXK_ESCAPE:
ret = wx.MessageBox('Are you sure to quit?', 'Question',
wx.YES_NO | wx.CENTRE | wx.NO_DEFAULT, self)
if ret == wx.YES:
self.Close()
event.Skip()
app = wx.App()
KeyEvent(None, -1, 'keyevent.py')
app.MainLoop()
Muss ich nun für jedes widget das ich anlege das EVT_KEY_DOWN bestimmen damit mein Vorhaben funktioniert?