Domanda

Sto cercando di imparare a eseguire un thread dall'app GUI principale per eseguire l'invio/ricezione della porta seriale mantenendo viva la mia GUI. I miei migliori tentativi di googling mi hanno portato al wiki Wxpython: http://wiki.wxpython.org/longrunningtass che fornisce diversi esempi. Ho deciso di apprendere il primo esempio, prevedendo l'avvio di un thread del lavoratore quando viene selezionato il pulsante particolare.

Ho difficoltà a capire la definizione di evento personalizzato:

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 il

def EVT_RESULT(win, func):
    """Define Result Event."""
    win.Connect(-1, -1, EVT_RESULT_ID, func)

Penso che EVT_RESULT sia posizionato fuori dalle classi in modo da renderlo richiamato da entrambe le classi (rendendolo globale?)

E .. L'app principale della GUI monitora i progressi del thread tramite:

# Set up event handler for any worker thread results
EVT_RESULT(self,self.OnResult)

Noto anche che in molti esempi, quando lo scrittore usa

from wx import *

semplicemente legano le cose da

EVT_SOME_NEW_EVENT(self, self.handler)

al contrario di

wx.Bind(EVT_SOME_NEW_EVENT, self.handler)

Il che non mi aiuta a capirlo più velocemente. Grazie,

È stato utile?

Soluzione

Il contenuto è stato correttamente ri-indicizzato dopo aver effettuato le modifiche?A seconda della versione e delle impostazioni dell'ambiente, le nuove autorizzazioni potrebbero non avere effetto nei risultati della ricerca fino a quando il contenuto non è strisciato.

Altri suggerimenti

Questo è il vecchio stile di definire eventi personalizzati. Vedere la guida alla migrazione per maggiori informazioni.

Preso dalla Guida alla migrazione:

Se crei i tuoi tipi di eventi personalizzati e le funzioni EVT_* e si desidera essere in grado di utilizzarli con il metodo BIND sopra, dovresti cambiare il tuo evt_* per essere un'istanza di wx.PyEventBinder invece di una funzione. Ad esempio, se avevi qualcosa del genere:

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

Cambiarlo così:

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

Ecco un altro post Che ho fatto con un paio di programmi di esempio che fanno esattamente quello che stai cercando.

Un'opzione è di e-mail Abilitare la libreria dei documenti in cui si desidera inviare il file, utilizzare questo indirizzo e-mail per inviare e-mail il server SharePoint e memorizzerà il report nella Biblioteca Documenti.Ho usato questa tecnica in passato con un server SSRS non in modalità integrata per fornire report in programma a SharePoint.

Questo presuppone che la tua sharepoint farm abbia un'e-mail in entrata configurata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top