【问题标题】:Clear a Text Box within tkinter清除 tkinter 中的文本框
【发布时间】:2018-08-25 00:41:59
【问题描述】:

我正在尝试刷新 tkinter GUI 中的标签,并且证明非常 难的。 我已经尝试过 destroy() 命令和删除命令,例如

def Erase():
    self.e1.delete(first=0,last=100)

我已经阅读了很多帖子和 tkinter 文档,但没有成功

def retrieve_inputBoxes():
    VPNID = int(self.e1.get())
    df = pd.read_csv("Data.csv")
    output = (df[["field1", "field2", "field9"]][df["field4"]== VPNID])
    my_list1 = output["field1"].tolist()
    self.e1 = self.canvas.create_text(100 ,450 ,anchor='center', text=my_list1, font =('Helvetica', 8, 'bold'))

数据进入标签就好了,但是下次数据进入时,它会覆盖上一个条目。 任何帮助将不胜感激

【问题讨论】:

  • 我不明白你的问题是什么,你能解释一下程序的这一部分在一些上下文中做什么吗? self.e1 是什么类型的对象?
  • 您说您已尝试过 destroy 命令,但您的代码没有显示任何证据。请花时间创建一个合适的minimal reproducible example。此外,您的标题提到了“文本框”,但 tkinter 没有这样的小部件。有一个条目小部件和一个文本小部件,然后您的代码正在创建一个画布文本对象。很难说你指的是哪个。
  • 标题应该是明确的 tkinter 中的“标签”
  • 标题应该是明确的 tkinter 中的“标签” 代码示例是一个函数,它读取用户的输入,然后输入查找一个 csv 文件,该文件提取一行数据关于用户输入。将提取数据的 field1 列放入列表中。在画布上设置了一个名为 e1 的标签,并且 text=my_list 显示在画布上。这很好用,但是下次我查找新值时,标签会被新值覆盖(看起来像是被覆盖了),因此我需要清除标签

标签: python-3.x tkinter


【解决方案1】:

需要在画布对象上调用delete方法,而不是变量self.e1create_text 方法返回一个标识符,所以这一行:

self.e1 = self.canvas.create_text(... )

将该标识符分配给self.e1。 您可以使用该变量来告诉 delete 方法要删除的内容。

self.canvas.delete(self.e1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多