我想学习如何运行一个线程关闭主GUI应用程序来做我的串口发送/接收,同时保持我的GUI活着。我最好的Google搜索尝试将我带到了wxpython wiki:http://wiki.wxpython.org/LongRunningTasks,它提供了几个示例。我决定学习第一个例子,涉及在选择特定按钮时启动工作线程。wxPython:线程的GUI - >使用自定义的事件处理程序
我无法理解的自定义事件定义:
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)
哪个没有按帮助我更快地理解它。 谢谢,
感谢您的答案,我将在我工作时提及它。 – PPTim 2010-03-01 21:26:36