[PIPython] [wxPython] Domanda sulle hot key (EVT_KEY_DOWN)
whamoo
whamoo
Ven 19 Nov 2004 15:16:45 CET
Salve a tutti,
Sto scrivendo un'applicazione a scopi didattici per una bimba con
alcuni problemi, per cui devo far un programma che visualizzi
un'immagine che premendo il tasto che corrisponde all'iniziale
dell'immagine dia un certo messaggio, mentre se viene premuto il tasto
scorretto dia un errore.
Il mio problema e' questo, ho la mia applicazione con un pannello, un
box sizer e un'immagine e fin qui no problemi, ma quando bindo al panel
l'evento EVT_KEY_DOWN e scrivo la funzione corrispondente non succede
nulla, la funzione non viene lanciata...
Se tolgo l'immagine, tutto funziona come dovrebbe, mi e' stato detto
che e' un problema di focus, ma non riesco a saltarci fuori, qualcuno
puo' darmi una mano?
Posto qui il codice (semplificato, solo per la focalizzazione sul
problema):
Grazie in anticipo =)
Whamoo
---------- Begin code:
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, title,
pos=(150, 150))
self.panel = wx.Panel(self)
wx.EVT_KEY_DOWN(self.panel, self.pn_OnKeyUp)
img = wx.StaticBitmap(self.panel, -1, wx.EmptyBitmap(100,100))
wx.EVT_SET_FOCUS(img, self.OnSetFocus)
wx.EVT_SET_FOCUS(self, self.OnSetFocus)
box = wx.BoxSizer(wx.VERTICAL)
box.Add(img, 0, wx.GROW)
self.panel.SetSizer(box)
self.panel.Layout()
self.panel.SetFocus()
def OnSetFocus(self,event):
self.Panel.SetFocus()
def pn_OnKeyUp(self,event):
key = event.KeyCode()
if key == 65:
print "Bene"
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, "Notes")
frame.Show(True)
self.SetTopWindow(frame)
return True
app = MyApp(True)
app.MainLoop()
More information about the Python
mailing list