我想學習如何運行一個線程關閉主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