首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程后清除wxTextCtrl

线程后清除wxTextCtrl
EN

Stack Overflow用户
提问于 2013-12-04 15:07:10
回答 1查看 89关注 0票数 0

我有一个处理长任务的ListCtrl。在此期间,我需要在wx.TextCtrl上填充一个简单的文本“运行”,并在线程停止后清除它。怎么能做到这一点?这就是我用的..。

代码语言:javascript
复制
***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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-04 18:32:31

可能最简单的方法是在线程执行结束时发送来自线程的消息。为此,您需要使用wxPython的线程安全方法之一,例如wx.CallAfter或wx.PostEvent。这将允许您在应用程序中调用清除文本控件的方法。

就我个人而言,我喜欢结合使用pubsub和wx.CallAfter来向我的应用程序发送需要更新的消息。在本教程中,您可以了解到我是如何做这种事情的:

  • http://www.blog.pythonlibrary.org/2010/05/22/wxpython-and-threads/

遗憾的是,该教程使用了旧的pubsub,因此如果您有任何问题,您可能需要更新到稍微不同的API,但更新的API,我已经谈到了这里

最后,您可以始终查看wxPython wiki,这里有许多有趣的线程示例:

  • http://wiki.wxpython.org/LongRunningTasks
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20378853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档