线程,wxpython和状态栏

线程,wxpython和状态栏,第1张

概述我正在做一个我正在使用wxStatusBar的程序,当下载开始时我开始这样的子线程: def OnDownload(self, event): child = threading.Thread(target=self.Download) child.setDaemon(True) child.start() 下载是另一个没有参数的功能(自我除外).我想从那里更新我的状态栏, 我正在做一个我正在使用wxStatusbar的程序,当下载开始时我开始这样的子线程:

def OnDownload(self,event):    child = threading.Thread(target=self.Download)    child.setDaemon(True)    child.start()

下载是另一个没有参数的功能(自我除外).我想从那里更新我的状态栏,其中包含有关下载进度的一些信息,但是当我尝试这样做时,我经常会遇到Xwindow,glib和segfaults错误.有什么想法解决这个问题?

解决:我只需要在更改线程内部GUI中的内容和wx.MutexGuiLeave()完成之前包含wx.MutexGuIEnter().例如

def Download(self):    #stuff that doesn't affect the GUI    wx.MutexGuIEnter()    self.SetStatusText("This is a thread")    wx.MutexGuiLeave()

这就是全部:D

解决方法 你是如何更新状态栏的?

我认为你应该没问题,如果你创建一个自定义事件,然后通过wx.PostEvent发布它来通知GUI线程中的框架/状态栏.

对于状态栏中的下载进度,您可能希望事件看起来像这样:

DownloadProgressEvent,EVT_DL_PROGRESS = wx.lib.newevent.NewEvent()# from the thread...event = DownloadProgressEvent(current=100,total=1000,filename="foo.jpg")wx.PostEvent(frame,event)# from the frame:def OnDownloadProgress(self,event):    self.statusbar.update_dl_msg(event.current,event.total,event.filename)

Here’s some more detail from the wxPython wiki.

总结

以上是内存溢出为你收集整理的线程,wxpython和状态栏全部内容,希望文章能够帮你解决线程,wxpython和状态栏所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196436.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存