我已经在互联网上阅读了一些关于清除 tkinter 上的文本框的主题。基本上每个人都说这很简单:
text.delete("1.0", END)
但是,也许这与我构建它的方式或我调用它的方式有关,但出于某种原因,这对我不起作用。它只是什么都不做。
我试过重新定位def
,并text.delete("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()
您似乎并没有TextRedirector
在您发布的代码中实际使用该类,但是如果您在实际代码中使用它,请注意它的.write()
方法使文本框处于禁用状态 - 这可以防止所有修改,即使是由代码产生的修改而不是直接的用户操作。您的.clear_text()
方法需要暂时启用文本框,以便您可以修改它,完全一样.write()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句