【问题标题】:TKinter - Clear text widgetTKinter - 明文小部件
【发布时间】:2018-05-29 09:50:00
【问题描述】:

我在按下按钮时将 1 到 25 的随机数输入到文本框中。 每次按下按钮时,我都希望在存储新号码之前清空文本框 - 但将self.outputbox.delete("1.0") 放入按钮命令只会删除第一个字符。我尝试用明显的 2.0 替换 1.0,但它从未删除这两个字符。目前,我只是通过两次调用self.outputbox.delete("1.0") 来做一个非常肮脏的解决方案 - 但我想知道如何删除文本框的整个内容。

这是部分:

   def change_button_color(self):
       randomcolor = self.get_random_color()
       randombutton = self.random_button()
       for z in range(0,1):
          self.buttons['button{}'.format(randombutton)].config(bg=randomcolor)
          for i in range(0,40):
              self.outputbox.delete("1.0")
          self.outputbox.insert("1.0","Button" + str(randombutton) + " " + "has the color" + " " + randomcolor)

如您所见,我目前有一个相当肮脏的解决方案来清除盒子

【问题讨论】:

    标签: text tkinter widget


    【解决方案1】:

    这样做

    self.outputbox.delete("1.0", self.END)
    

    它将清除所有文本widget

    如果您导入了tkinter as tk,请执行此操作

    self.outputbox.delete("1.0", self.tk.END)
    

    【讨论】:

    • 我之前试过,但唯一发生的是“END”未定义错误
    • self.END怎么样
    • 这只是改变它,说我的班级没有 END 属性 - 我必须以某种方式声明 END 吗?
    • 可能是ENDtk.END,具体取决于您的导入。或者,您可以使用字符串'end',因为这是常量END 所包含的内容。
    • self.tk.END 是不好的建议,除非您在示例中还表明必须定义 self.tk.END。它不是由 tkinter 自动设置的。
    猜你喜欢
    • 1970-01-01
    • 2017-01-04
    • 1970-01-01
    • 2019-06-14
    • 2014-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多