我有一个处理长任务的ListCtrl。在此期间,我需要在wx.TextCtrl上填充一个简单的文本“运行”,并在线程停止后清除它。怎么能做到这一点?这就是我用的..。
***processing ***
self.testThread=threading.Thread(target=self.__run)
self.testThread.start()
def __run(self):
self.list_inter.SetLabel("Running")
self.testThread.stopped = True
self.list_inter.Clear()发布于 2013-12-04 18:32:31
可能最简单的方法是在线程执行结束时发送来自线程的消息。为此,您需要使用wxPython的线程安全方法之一,例如wx.CallAfter或wx.PostEvent。这将允许您在应用程序中调用清除文本控件的方法。
就我个人而言,我喜欢结合使用pubsub和wx.CallAfter来向我的应用程序发送需要更新的消息。在本教程中,您可以了解到我是如何做这种事情的:
遗憾的是,该教程使用了旧的pubsub,因此如果您有任何问题,您可能需要更新到稍微不同的API,但更新的API,我已经谈到了这里。
最后,您可以始终查看wxPython wiki,这里有许多有趣的线程示例:
https://stackoverflow.com/questions/20378853
复制相似问题