Pregunta

Estoy tratando de aprender a ejecutar un hilo de la aplicación GUI principal para hacer/recibir mi puerto en serie mientras mantiene viva mi GUI. Mis mejores intentos de Google me han llevado a la wiki wxpython en: http://wiki.wxpython.org/longrunningtasks que proporciona varios ejemplos. He decidido aprender el primer ejemplo, involucrando comenzar un hilo de trabajadores cuando se selecciona el botón particular.

Tengo problemas para comprender la defensa de la dirección personalizada:

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 sea llamado por ambas clases (¿haciéndolo 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 me doy cuenta de que en muchos ejemplos, cuando el escritor usa

from wx import *

simplemente vinculan las cosas por

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,

¿Fue útil?

Solución

¿Se ha reenificado correctamente el contenido después de realizar sus cambios?Dependiendo de su versión y configuración de entorno, los nuevos permisos pueden no tener efecto en los resultados de búsqueda hasta que el contenido se arrastra.

Otros consejos

Ese es el antiguo estilo de definir eventos personalizados. Ver la guía de migración para más información.

Tomado de la guía de migración:

Si crea sus propios tipos de eventos personalizados y las funciones EVT_*, y desea poder usarlos con el método de enlace anterior, debe cambiar su EVT_* para ser una instancia de wx.PyEventBinder en lugar de una función. Por ejemplo, si solía tener algo como esto:

myCustomEventType = wxNewEventType()
def EVT_MY_CUSTOM_EVENT(win, id, func):
    win.Connect(id, -1, myCustomEventType, func)

Cambiarlo así:

myCustomEventType = wx.NewEventType()
EVT_MY_CUSTOM_EVENT = wx.PyEventBinder(myCustomEventType, 1)

Aquí hay otra publicación que hice con un par de programas de ejemplo que hacen exactamente lo que está buscando.

Una opción es que le habilite la biblioteca de documentos donde desea enviar el archivo, luego use esta dirección de correo electrónico para enviar un correo electrónico al servidor de SharePoint y almacenará el informe en la biblioteca de documentos.He utilizado esta técnica en el pasado con un servidor SSRS que no está en modo integrado para entregar informes sobre la programación a SharePoint.

Esto supone que su Farmoint Farm tiene un correo electrónico entrante configurado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top