Я делаю программу, в которой я использую wxStatusBar, когда начинается загрузка, я запускаю дочерний поток, как это:
def OnDownload(self, event):
child = threading.Thread(target=self.Download)
child.setDaemon(True)
child.start()
Загрузка - это еще одна функция без параметров (кроме self). Я хотел бы обновить свою строку состояния с некоторой информацией о ходе загрузки, но когда я пытаюсь это сделать, я часто получаю ошибки 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