wxpython: потоковой графический интерфейс -> использование пользовательского обработчика событий

StackOverflow https://stackoverflow.com/questions/2345608

Вопрос

Я пытаюсь научиться запустить ветку из основного приложения GUI, чтобы сделать мой серийный порт, отправляя/получая, сохраняя при этом мой графический интерфейс. Мои лучшие попытки Googtling принесли меня на Wxpython Wiki на: http://wiki.wxpython.org/longrunningtasks который дает несколько примеров. Я убедился в изучении первого примера, включающего запуск рабочего потока при выборе конкретной кнопки.

У меня возникают проблемы с пониманием определения на заказ:

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

Прежде всего

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

Я думаю, что evt_result помещается за пределы классов, чтобы сделать его вызовом по обоим классам (делая его глобальным?)

И .. основное приложение GUI контролирует прогресс потока через:

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

Я также замечаю, что во многих примерах, когда писатель использует

from wx import *

Они просто связывают вещи

EVT_SOME_NEW_EVENT(self, self.handler)

в отличие от

wx.Bind(EVT_SOME_NEW_EVENT, self.handler)

Что не помогает мне понять это быстрее. Спасибо,

Это было полезно?

Решение

содержимое было правильно повторно проиндексировано после того, как вы внесли изменения?В зависимости от вашей версии и настроек окружающей среды новые разрешения могут не вступать в силу в результатах поиска, пока контент не пройден.

Другие советы

Это старый стиль определения пользовательских событий. Видеть Руководство по миграции Чтобы получить больше информации.

Взято из руководства по миграции:

Если вы создаете свои собственные типы событий и функции EVT_*, и вы хотите иметь возможность использовать их с помощью метода Bind выше, вам следует изменить свой EVT_* на экземпляр wx.PyEventBinder вместо функции. Например, если у вас было что -то вроде этого:

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

Изменить это так:

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

Вот еще один пост Что я сделал с несколькими примерами программ, которые делают именно то, что вы ищете.

Один вариант - по электронной почте Включить библиотеку документов, в которую вы хотите отправить файл, затем используйте этот адрес электронной почты для электронной почты SharePoint Server, и он будет хранить отчет в библиотеке документов.Я использовал эту технику в прошлом с сервером SSRS не в интегрированном режиме для доставки отчетов о расписании на SharePoint.

Это предполагает, что ваша ферма SharePoint имеет настроенную настроенную электронную почту.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top