Я пытаюсь преобразовать часть своего кода из Tkinter в wxPython. В настоящее время я пытаюсь создать функцию, которая постоянно зацикливается, обновляя время. Однако я столкнулся с некоторыми проблемами. Всякий раз, когда я закрываю программу, появляется окно, которое выдает мне следующее предупреждение.
Access violation at address 1E058497 in module 'python26.dll'. Read of address 00000008.
Это приводит к зависанию и падению моей IDE (PyScripter). Я думаю, что это может быть попытка вызвать функцию после того, как программа была уничтожена. Это тогда заставляет это обращаться к недоступному местоположению в памяти, вызывая все виды забавы. Любая помощь будет оценена.
Отрывок:
def tick (self):
''' Continually updates the time. '''
TimeStr = '%I:%M %S %p'
DateStr = '%A, %B %d, %Y'
Time = time.strftime(TimeStr)
Date = time.strftime(DateStr)
self.TimeDate = Time + '\t\t' + Date
self.ST.SetLabel(self.TimeDate)
wx.CallLater(1000, self.tick)
В версии Tkinter wx.CallLater (1000, self.tick) был заменен на .after (1000, self.tick) , если это помогает.
Edit:
Я попробовал это в IDLE, и это, похоже, сработало. Однако в PyScripter не повезло.