Tkinter-使用函数更改标签



我想用按钮覆盖/替换文本Label。如果我尝试制作一个新标签并将其放置在同一位置,则前一个文本仍然可见,因为它比新文本长。可以先删除前面的文本吗?任何提示

root = tk.Tk()
tabControl = ttk.Notebook(root)
tab1 = ttk.Frame(tabControl)
def changetext():
labeltest = Label(tab1, text="short text").place(x=20, y=20)
labeltest = Label(tab1, text="long long long text").place(x=20, y=20)
button1 = Button(tab1, text="Change text pls", command=changetext)
button1.place(x=20, y=50)
root.mainloop()

您的代码有这个错误。您不应该在同一行定义小部件和pack/place/grid。这是一种糟糕的做法,你会丢失对该小部件的引用。正如@acw1668所指出的,你可以这样使用<tkinter.Label>.config(text=<new text>)

import tkinter as tk
def changetext():
labeltest.config(text="short text")
root = tk.Tk()
labeltest = tk.Label(root, text="long long long text")
labeltest.pack()
button1 = tk.Button(root, text="Change text pls", command=changetext)
button1.pack()
root.mainloop()

相关内容

  • 没有找到相关文章

最新更新