Foros del Web » Programando para Internet » Python »

wxWidgets deteccion de tecla

Estas en el tema de wxWidgets deteccion de tecla en el foro de Python en Foros del Web. Hola tengo un formulario con varios campos (text box, grid, combo box). Me gustaria poder detectar la tecla escape sin importar en que objeto estoy ...
  #1 (permalink)  
Antiguo 31/08/2011, 20:01
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
wxWidgets deteccion de tecla

Hola tengo un formulario con varios campos (text box, grid, combo box). Me gustaria poder detectar la tecla escape sin importar en que objeto estoy parado. Para no tener que declarar todo lo mismo para todo los objetos. Tener en cuenta que no pueden llamar todos al mismo eveto porque tienen diferentes teclas cada uno tambien. A lo mejor se puede eso y el objeto event tiene alguna propiedad para identificar.

Si alguien se le ocurre un buen metodo para esto me lo canta.

Gracias!
  #2 (permalink)  
Antiguo 31/08/2011, 20:33
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: wxWidgets deteccion de tecla

Dependiendo de lo quieras hacer puedes usar shortcuts o puedes usar eventos en el frame.

Código Python:
Ver original
  1. import wx
  2.  
  3. class MyPanel(wx.Panel):
  4.     def __init__(self, *args, **kwargs):
  5.         wx.Panel.__init__(self, *args, **kwargs)
  6.         vbox = wx.BoxSizer(wx.VERTICAL)
  7.        
  8.         label = wx.StaticText(self, label='Label text')
  9.         textbox = wx.TextCtrl(self)
  10.         button = wx.Button(self, label='Button Text')
  11.        
  12.         vbox.Add(label, flag=wx.EXPAND)
  13.         vbox.Add(textbox, flag=wx.EXPAND)
  14.         vbox.Add(button, flag=wx.EXPAND)
  15.        
  16.         self.SetSizer(vbox)
  17.        
  18.        
  19.  
  20. class MyFrame(wx.Frame):
  21.     def __init__(self, *args, **kwargs):
  22.         wx.Frame.__init__(self, *args, **kwargs)
  23.         self.mpanel = MyPanel(self, -1)
  24.         self.Bind(wx.EVT_CHAR_HOOK, self.onHook)
  25.        
  26.     def onHook(self, event):
  27.         if event.GetKeyCode() == wx.WXK_ESCAPE:
  28.             print "ESC"
  29.         else:
  30.             event.Skip()
  31.        
  32.  
  33. if __name__ == '__main__':
  34.     app = wx.App(0)
  35.     mframe = MyFrame(None, -1)
  36.     mframe.Show()
  37.     app.MainLoop()

Etiquetas: deteccion, tecla, wxwidgets
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:53.