wxPython: GUI de subprocesos -> Uso del controlador de eventos personalizado
Estoy tratando de aprender cómo ejecutar un hilo desde la aplicación GUI principal para enviar / recibir mi puerto serie mientras mantengo viva mi GUI. Mis mejores intentos de Google me han llevado a la wiki de wxpython en:http://wiki.wxpython.org/LongRunningTasks que proporciona varios ejemplos. Me decidí a aprender el primer ejemplo, que implica iniciar un hilo de trabajo cuando se selecciona el botón en particular.
Tengo problemas para entender la definición de evento personalizado:
def EVT_RESULT(win, func):
"""Define Result Event."""
win.Connect(-1, -1, EVT_RESULT_ID, func)
class ResultEvent(wx.PyEvent):
"""Simple event to carry arbitrary result data."""
def __init__(self, data):
"""Init Result Event."""
wx.PyEvent.__init__(self)
self.SetEventType(EVT_RESULT_ID)
self.data = data
Principalmente el
def EVT_RESULT(win, func):
"""Define Result Event."""
win.Connect(-1, -1, EVT_RESULT_ID, func)
Creo que EVT_RESULT se coloca fuera de las clases para que ambas clases puedan llamarlo (¿global?)
Y ... la aplicación GUI principal monitorea el progreso del hilo a través de:
# Set up event handler for any worker thread results
EVT_RESULT(self,self.OnResult)
También noto que en muchos ejemplos, cuando el escritor usa
from wx import *
simplemente unen las cosas
EVT_SOME_NEW_EVENT(self, self.handler)
Opuesto a
wx.Bind(EVT_SOME_NEW_EVENT, self.handler)
Lo que no me ayuda a entenderlo más rápido. Gracias,