Я делаю программу, в которой я использую wxStatusBar, когда начнется загрузка я начинаю ребенок нить, как это:Нить WxPython и статусная
def OnDownload(self, event):
child = threading.Thread(target=self.Download)
child.setDaemon(True)
child.start()
Скачать другую функция без параметров (кроме самостоятельно). Я хотел бы обновить свою панель статусов оттуда с некоторой информацией о ходе загрузки, но когда я пытаюсь это сделать, я часто получаю ошибки Xwindow, glib и segfaults. Любая идея решить это?
Решено: мне просто нужно включить wx.MutexGuiEnter() перед изменением что-то в графическом интерфейсе внутри нити и wx.MutexGuiLeave(), когда закончил. Например
def Download(self):
#stuff that doesn't affect the GUI
wx.MutexGuiEnter()
self.SetStatusText("This is a thread")
wx.MutexGuiLeave()
И это все: D