清除textbox-tkinter-Python时遇到问题

清除textbox-tkinter-Python时遇到问题,python,text,tkinter,Python,Text,Tkinter,我在互联网上读过一些关于清除tkinter上文本框的帖子。基本上每个人都说这很简单: text.delete("1.0", END) 然而,也许它与我构建它的方式有关,或者与我称之为它的方式有关,但是出于某种原因,这对我不起作用。它什么也不做 我尝试过重新定位def,并以多种方式重新编写文本。删除(“1.0”,END),其中大多数都会导致其他错误,但我似乎无法实现这一点 最终,我试图实现的是,当我单击一个按钮时,文本框将清除,然后再填充新信息 下面是我的代码 from tkinter impo

我在互联网上读过一些关于清除tkinter上文本框的帖子。基本上每个人都说这很简单:

text.delete("1.0", END)
然而,也许它与我构建它的方式有关,或者与我称之为它的方式有关,但是出于某种原因,这对我不起作用。它什么也不做

我尝试过重新定位
def
,并以多种方式重新编写
文本。删除(“1.0”,END)
,其中大多数都会导致其他错误,但我似乎无法实现这一点

最终,我试图实现的是,当我单击一个按钮时,文本框将清除,然后再填充新信息

下面是我的代码

from tkinter import *
from PIL import Image, ImageTk
import functions

class MainWindow(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.parent = parent
        self.initUI()

    def initUI(self):
        self.parent.title("pyTicket")

# TOOLBAR ####################################################
        toolbar = Frame(self.parent, bd=1, relief=RAISED)

        self.img = Image.open("Icons\startupcheck.png")
        eimg = ImageTk.PhotoImage(self.img)
        startupButton = Button(toolbar, text="Re-Check ", image=eimg, compound="left", relief=RAISED, command=self.StartUpChecker)
        startupButton.image = eimg
        startupButton.pack(side=RIGHT, padx=2, pady=2)

        toolbar.pack(side=TOP, fill=X)

        self.parent.config(menu=menubar)
        self.pack(anchor=N, side=TOP, fill=X, expand=False)
# TOOLBAR ####################################################

# TEXTBOX ####################################################
        self.textbox = Text(self, wrap="word", height=5)
        self.textbox.pack(side="bottom", fill="both", expand=True)
        self.textbox.tag_configure("TextBox", foreground="#b22222")
        self.pack(anchor=S, side=BOTTOM, fill=BOTH, expand=True)
# TEXTBOX ####################################################

# Functions ###################################################
    def StartUpChecker(self):
        self.clear_text()
        functions.StartUpChecker()

    def clear_text(self):
        self.textbox.delete("1.0", END)

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

    def write(self, str):
        self.widget.configure(state="normal")
        self.widget.insert("end", str, (self.tag,))
        self.widget.configure(state="disabled")    
def main():
    root = Tk()
    #Width X Height
    root.geometry("500x300+300+300")
    root.update()
    root.minsize(400,200)
    app = MainWindow(root)
    root.mainloop()

if __name__ == '__main__':
    main()

您似乎没有在发布的代码中实际使用
textdirector
类,但如果您在实际代码中使用它,请注意,它的
.write()
方法会使文本框处于禁用状态-这会阻止所有修改,即使是由代码而不是直接用户操作导致的修改。您的
.clear\u text()
方法需要临时启用文本框,以便您可以修改它,就像
.write()
所做的那样。

这应该是可行的。只是想看看问题是否出在其他地方,请您注释掉functions.StartUpChecker()行,然后再试一次?当我注释掉它时,它什么也不做。按钮似乎没有响应。此问题已解决。天哪,我明白你的意思,我已将状态更改为
normal
,明文按预期工作。TextRedirector是我在网上找到的一个小功能,它可以将控制台输出打印到tkinter文本框中。我甚至没有注意到
state=“disabled”
谢谢!