我得到了这个看起来很奇怪的问题,有时我的tkinter应用程序因KeyError崩溃:“无”。这非常不稳定:(
这是我的重定向课程,我刚刚从互联网上跟进了其他一些人,对此我不太了解。
此代码由我的串行监视器调用,该监视器基本上打印出接收到的数据。
文件“ D:\ work \ tools \ eclipseWorkspace \ myDemo \ mySerialPort.py”,行 119,在readSerial
中 打印serBuffer
在第56行的“ D:\ work \ tools \ eclipseWorkspace \ myDemo \ mySerialPort.py”文件中 写 self.widget.winfo_toplevel()。update()文件“ 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()
答案 0 :(得分:0)
我希望有人能找出根本原因,目前我的解决方案是KeyError除外,我也尝试了Jason的建议,所以我当前的代码如下:
try:
self.widget.update()
except KeyError:
pass