【发布时间】:2021-03-20 12:35:56
【问题描述】:
我正在制作一个 Tkinter 应用程序,该应用程序在执行某些操作后会更改标签的文本,并且每当我更改标签的文本值然后重新对其进行网格化时,旧文本仍然存在于它后面。我试过label.grid_forget() 但这并没有解决它。这是我目前所拥有的东西:
from tkinter import *
root = Tk()
# Update text function
def update(txt):
global label
label = Label(root, text=txt)
label.grid(row = 1, columnspan = 2, padx=5, pady=5)
# Button 1
btn1 = Button(root, text="Button #1", command=lambda:update("You clicked button #1! My favorite."))
btn1.grid(row = 0, column = 0, padx=5, pady=5)
# Button 2
btn2 = Button(root, text="Button #2", command=lambda:update("You clicked button #2."))
btn2.grid(row = 0, column = 0, padx=5, pady=5)
# Label
label = Label(root, text="Click the buttons to change me.")
label.grid(row = 1, columnspan = 2, padx=5, pady=5)
代码显示了两个按钮和一个文本标签,试图按照我描述的方式进行操作。单击两个按钮后,其中一个仍然从后面可见,我不知道如何解决这个问题。任何帮助将不胜感激。
【问题讨论】:
-
你的
def update(txt):应该只包含label.config(text=txt) -
哦,谢谢!我不知道我能做到。下次我会一直阅读文档。我刚刚试了一下,效果很好。