У меня получилась странная проблема: иногда мое приложение tkinter аварийно завершало работу с KeyError: «None». Это очень нестабильно: (
Вот мой класс перенаправления, я только что следил за некоторыми другими из Интернета, у меня нет большого понимания об этом.
Этот код был вызван моим последовательным монитором, который в основном печатает полученные данные.
Файл "D: \ work \ tools \ eclipseWorkspace \ myDemo \ mySerialPort.py", строка
119, в readSerial
печать serBuffer
Файл "D: \ work \ tools \ eclipseWorkspace \ myDemo \ mySerialPort.py", строка 56, в
записывать
self.widget.winfo_toplevel (). Обновление ()
Файл "C: \ Python27 \ lib \ lib-tk \ Tkinter.py", строка 954,
в winfo_toplevel
'winfo', 'toplevel', self._w))
Файл "C: \ Python27 \ lib \ lib-tk \ Tkinter.py", строка 1200,
в nametowidget w = w.children [n]
KeyError: 'Нет'
class Logger(object):
def __init__(self, widget, tag="stdout"):
self.widget = widget
self.tag = tag
self.file = open("message.log","w")
def write(self, msg):
if msg == None:
return
self.widget.configure(state="normal")
self.widget.insert("end", msg, (self.tag,))
self.widget.configure(state="disabled")
self.widget.see(END)
self.widget.winfo_toplevel().update()
self.file.write(msg)
def flush(self):
self.file.flush()