Intenté EVT_KEY_DOWN pero no funciona. ¿Hay alguna manera de capturar cualquier golpe de teclado como F1, F2, ENTER y otros? Estoy usando un Marco y un Panel.¿Hay una manera fácil de capturar todas las pulsaciones de teclas de marco/ventana en Python o wxPython
6
A
Respuesta
1
3
he usado EVT_KEY_DOWN en una subclase de diálogo. En el método de __init__
de su clase de diálogo, se unen a EVT_KEY_DOWN:
def __init__(self, ....):
# ...other init code...
self.Bind(wx.wx.EVT_KEY_UP, self.handle_key_up)
a continuación, proporcionar un método en su diálogo como:
def handle_key_up(self, event):
keycode = event.GetKeyCode()
lc = self.list_ctrl_fields
# handle F2
if keycode == wx.WXK_F2:
print "got F2"
(. Probado en Python 2.6, wxPython 2.8.10)
3
¿Es esto lo que quieres decir? Debe mirar los Aceleradores globales. Por coincidencia, he estado mirando esto el último día o dos también. Suponiendo que la ventana de la aplicación wxpython tiene foco, lo siguiente debe llamar a la rutina apropiada al presionar las teclas. Trabajando en mi ubuntu 11.04/py 2.7.1/wxpython 2.8
Es evidente que podría consolidar el método de evento si es necesario.
No hay mucho que se encuentran en este tema, pero this link y this link me ayudó (mismo sitio web)
import wx
class MyFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "Global Keypress")
self.panel = wx.Panel(self, wx.ID_ANY)
self.CreateStatusBar()
# Global accelerators
id_F1 = wx.NewId()
id_F2 = wx.NewId()
self.Bind(wx.EVT_MENU, self.pressed_F1, id=id_F1)
self.Bind(wx.EVT_MENU, self.pressed_F2, id=id_F2)
accel_tbl = wx.AcceleratorTable([
(wx.ACCEL_NORMAL, wx.WXK_F1, id_F1),
(wx.ACCEL_NORMAL, wx.WXK_F2, id_F2)
])
self.SetAcceleratorTable(accel_tbl)
def pressed_F1(self, event):
print "Pressed F1"
return True
def pressed_F2(self, event):
print "Pressed F2"
return True
if __name__ == "__main__":
app = wx.PySimpleApp()
f = MyFrame().Show()
app.MainLoop()
Cuestiones relacionadas
- 1. Pulsaciones de teclas en Python
- 2. ¿Cómo puedo capturar todas las excepciones de una aplicación wxPython?
- 3. Objective-C/Cocoa: detecta todas las pulsaciones de teclas
- 4. Capturar varias pulsaciones de tecla en C#
- 5. Insertar pulsaciones de teclas en la consola Linux desde Python
- 6. Simular pulsaciones de teclas en Linux con Python
- 7. Captura de pulsaciones de teclas en GNU/Linux en C
- 8. Anular la secuencia de pulsaciones de teclas?
- 9. ¿Cómo manejo las pulsaciones simultáneas de teclas en Java?
- 10. Visual Studio pulsaciones de teclas: hay intercambiando líneas
- 11. ¿Hay alguna manera de enviar pulsaciones de teclas a Webkit usando Capybara?
- 12. ¿Hay una manera fácil de copiar todas las dependencias de jar a un cierto directorio en XSBT 0.11.2?
- 13. ¿Hay una manera fácil de extraer una función de python (o serializar de otra manera su código)?
- 14. ¿Cuál es una forma sencilla de esperar y detectar las pulsaciones de teclas en Haskell?
- 15. ¿Hay una manera fácil de instalar la biblioteca Lisp, como ruby gem (Ruby) o easy_install (Python)?
- 16. Android: ¿hay alguna manera fácil de encontrar todas las cadenas en mi proyecto?
- 17. ¿Hay alguna manera de recorrer y ejecutar todas las funciones en una clase de Python?
- 18. Mostrar pulsaciones de teclas de entrada en Vim
- 19. Iterar todas las teclas de un mapa
- 20. Pantalla completa Python TKinter o ventana de wxPython, pero "quédate en la parte inferior" de todas las ventanas?
- 21. Promedio de tiempo entre pulsaciones de teclas al escribir
- 22. acciones de retardo entre pulsaciones de teclas en jQuery
- 23. ¿Hay alguna manera fácil de adjuntar una fuente en Eclipse?
- 24. Escaneo de teclas en Python
- 25. ¿Hay alguna manera de obtener todas las variables en Ruby?
- 26. Emacs: la asignación de teclas de impresión para un comando o una lista de todas las asociaciones de teclas
- 27. Enviar contenido del portapapeles como pulsaciones de teclas en AutoHotkey
- 28. ¿Hay una manera fácil de observar las celdas visibles en una UITableView?
- 29. capturar todas las excepciones en un controlador de rieles
- 30. Manera fácil de detectar todas las excepciones no controladas en C# .NET