从文本widg中删除内容

2024-04-18 10:59:09 发布

您现在位置:Python中文网/ 问答频道 /正文

在Tkinter中,如何从文本小部件中删除内容。在我的程序中,我用它来显示运行日志。我想限制它显示的行数,即在达到特定行数限制后,我想并行删除旧内容。下面是在文本小部件中进行内容修改的代码片段。如您所见,插入25行之后,我将使用“delete”方法删除1行。但奇怪的是,在显示了25行之后,它会清除整个小部件,然后在随后调用这个类时,添加一行,一段时间后删除它。有人能帮我解决这个问题吗。你知道吗

class TextRedirector(object):
    def __init__(self, widget, tag="stdout"):
        self.widget = widget
        self.tag = tag

    def write(self, str):
        global linecount
        linecount = linecount + 1
        self.widget.configure(state="normal")
        self.widget.insert("end", str, (self.tag,))
        self.widget.update()
        if linecount > 25:
             self.widget.delete('1.0', '2.0')
        self.widget.see('end')
        self.widget.configure(state="disabled")

Tags: 文本self程序内容部件tkinterconfiguredef
1条回答
网友
1楼 · 发布于 2024-04-18 10:59:09

似乎您的self.linecount变量无限制地增长,并且没有考虑到您正在删除某些行。因此,一旦有了>;25行,每次调用write时,它都会删除一行。你知道吗

你知道你可以将滚动条附加到文本小部件吗?这将允许几乎不受限制的文本,并允许用户向后滚动以查看旧数据。你知道吗

相关问题 更多 >