【问题标题】:Removing a textvariable from a widget in tkinter从 tkinter 中的小部件中删除文本变量
【发布时间】:2021-01-18 23:09:10
【问题描述】:

在已经将文本变量分配给小部件后,如何删除它? widget.config(textvariable=None) 只是不工作。在谷歌或这里找不到任何东西。

【问题讨论】:

  • 你为什么要这样做?
  • 将小部件全部移除的替代方法会导致网格混乱。世界上所有的grid_propagate(0) 都帮不了我,所以我想我只是删除文本变量并清空文本,但什么也没发生,所以我想有一些特殊的方法可以做到这一点。
  • 您熟悉grid_forget() 方法吗?我认为您的变量不是布局问题。 stackoverflow.com/questions/63536505/…
  • 我是。只是如果我这样做,整个布局就会陷入困境。不管我做什么。 rowconfigure(n, weight=x)grid_propagate(0) 只是没有帮助。就好像 tkinter 没有像承诺的那样行事。
  • 如果你知道怎么做就可以了。如果你能写一个关于它的问题,我会回答你,但需要看看你在什么样的背景下才能提出有效的观点。

标签: tkinter widget


【解决方案1】:

将您的变量分配给一个空字符串以实现此目的。

import tkinter as tk

root = tk.Tk()
var = tk.StringVar()
label = tk.Label(root, textvariable=var)
label.pack()
print(f"var= {label['textvariable']}")
label.config(textvariable='')
print(f"var= {label['textvariable']}")

root.mainloop() 

【讨论】:

  • 正如您在我的示例中看到的那样,它有效。给我看一个你的代码的最小示例
  • 它并没有像你写的那样工作,但是在将text='' 添加到 config 方法之后,它就可以了。 :) 谢谢!!无法编辑我的原始评论,原因是错误点击“保存编辑”按钮.....
猜你喜欢
  • 1970-01-01
  • 2013-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-06
  • 2021-08-23
  • 1970-01-01
相关资源
最近更新 更多