Question

J'essaie d'apprendre à exécuter un fil sur l'application GUI principale pour faire mon port en série envoyant / recevant tout en gardant mon GUI en vie. Mes meilleures tentatives de recherche sur Google m'ont atterri au Wxpython Wiki sur: http://wiki.wxpython.org/longrunningtasks qui fournit plusieurs exemples. Je me suis installé sur l'apprentissage du premier exemple, impliquant le démarrage d'un fil de travail lorsque le bouton particulier est sélectionné.

J'ai du mal à comprendre la définition des événements personnalisés:

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

Principalement le

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

Je pense que EVT_RESULT est placé en dehors des classes afin de le rendre appelant par les deux classes (le rendre global?)

Et .. l'application principale GUI surveille les progrès du fil via:

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

Je remarque également que dans de nombreux exemples, lorsque l'écrivain utilise

from wx import *

Ils lient simplement les choses par

EVT_SOME_NEW_EVENT(self, self.handler)

par opposition à

wx.Bind(EVT_SOME_NEW_EVENT, self.handler)

Ce qui ne m'aide pas à le comprendre plus rapidement. Merci,

Était-ce utile?

La solution

Le contenu a-t-il été correctement ré-indexé après votre modification?En fonction de vos paramètres de version et d'environnement, les nouvelles autorisations peuvent ne pas prendre effet dans les résultats de la recherche tant que le contenu est rampé.

Autres conseils

C'est l'ancien style de définition d'événements personnalisés. Voir le guide de migration pour plus d'informations.

Tiré du guide de migration:

Si vous créez vos propres types d'événements personnalisés et vos fonctions EVT_ *, et que vous souhaitez pouvoir les utiliser avec la méthode de liaison ci-dessus, vous devez modifier votre EVT_ * pour être une instance de wx.PyEventBinder au lieu d'une fonction. Par exemple, si vous aviez quelque chose comme ceci:

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

Changez-le comme ça:

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

Voici un autre article que j'ai fait avec quelques exemples de programmes qui font exactement ce que vous recherchez.

One Option est de passer par courrier électronique Activer la bibliothèque de documents où vous souhaitez envoyer le fichier, puis utilisez cette adresse e-mail pour envoyer un courrier électronique à SharePoint Server et il stocke le rapport dans la bibliothèque de documents.J'ai utilisé cette technique dans le passé avec un serveur SSRS non en mode intégré pour fournir des rapports sur l'horaire à SharePoint.

Ceci suppose que votre ferme SharePoint a une courriel entrant configuré.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top