0

我正在使用 python tkinter 制作一个 GUI,并使用一个ScrolledText小部件来保存日志(我点击了这个链接:https ://beenje.github.io/blog/posts/logging-to-a-tkinter-scrolledtext-widget /)。

我想在点击重新运行按钮时清除 ScrolledText 并将新日志记录到 ScrolledText。

我的代码:

import tkinter as tk
import tkinter.scrolledtext

class MainPage(tk.Frame)
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        self.controller = controller

        self.button_start = tk.Button(self, text='START', command=self.on_rerun_button)
        self.button_start.grid(row=7, column=0, columnspan=2, padx=5, pady=5, sticky='NSWE')

        self.scrolledtext_log = tk.scrolledtext.ScrolledText(self, state='disabled')
        self.scrolledtext_log.configure(font='TkFixedFont')
        self.scrolledtext_log.grid(row=0, column=2, rowspan=8, columnspan=8, sticky='NSWE')
   
    def on_rerun_button(self):
        self.scrolledtext_log.delete('1.0', tk.END) #but it doesn't work here

        # run something here...

请帮帮我,万分感谢~~~

4

1 回答 1

4

您需要启用文本小部件进行编辑。在您的功能中,您可以暂时重新启用小部件,然后再次禁用它。

def on_rerun_button(self):
    self.scrolledtext_log.configure(state='normal')
    self.scrolledtext_log.delete('1.0', tk.END)
    self.scrolledtext_log.configure(state='disabled')
于 2021-10-27T08:38:17.217 回答