我在tkinter遇到这个奇怪的问题。基本上我使用文本小部件使用python日志记录对象从我的应用程序输出某些消息。相应的Handler看起来像这样:
class MessageHandler(logging.Handler):
def __init__(self, msg_widget, level=logging.NOTSET):
logging.Handler.__init__(self, level)
self.__msg_widget = msg_widget
def emit(self, record):
self.__msg_widget.config(state=tk.NORMAL)
self.__msg_widget.insert('end', '\n' + record.getMessage())
self.__msg_widget.see('end linestart')
self.__msg_widget.config(state=tk.DISABLED)
这里msg_widget是一个tk.Text对象。但是,有时文本内容会完全消失,需要手动滚动(使用鼠标)才能重新出现。如果我取消注释行
,则不会发生这种情况self.__msg_widget.see('end linestart')
有没有人知道这种行为可能来自哪里?