如何在gui中清除输出(不是终端)



我是python的新手,我正在编写一个lbs到kg转换器的脚本,我想知道如何在收到答案后清除输出,基本上每当我按下convert按钮时,它都会不断输出,并且会不断扩展窗口。

def to_kg():
kg=float(entry1.get())/2.0462
labelanswer=tk.Label(root, text=(kg), bg='teal')
labelanswer.place(x=45,y=45)
labelanswer.pack()


import tkinter as tk
from tkinter.constants import BOTTOM
from typing import Text
root=tk.Tk()
root.resizable(False, False)
root.title('Pounds to Kilograms')
canvas=tk.Canvas(root, height=150, width=200, bg='teal')
frame=tk.Frame(root, bg='white')
frame.place(relwidth=0.8, relheight=0.8, relx=0.1 rely=0.1)
entry1=tk.Entry(root)
canvas.create_window(200, 200, window=entry1)
entry1.place(x=40, y=50)
def to_kg():
kg=float(entry1.get())/2.205
labelanswer=tk.Label(root, text=(kg), bg='teal')
labelanswer.place(x=45,y=45)
labelanswer.pack()
labeltext=tk.Label(root, text='lbs to kg', bg='white')
button1=tk.Button(root, text="convert", command=to_kg)
button1.pack(side=BOTTOM)
canvas.pack()
frame.pack()
root.mainloop()

示例1示例2

每次单击按钮都会创建新标签。这将在屏幕截图上创建一个新标签。您应该修改答案标签,而不是创建新标签。因此,只有一个answerlabel

这是有效的解决方案。

import tkinter as tk
from tkinter.constants import BOTTOM
from typing import Text
root=tk.Tk()
root.resizable(False, False)
root.title('Pounds to Kilograms')
canvas=tk.Canvas(root, height=150, width=200, bg='teal')
frame=tk.Frame(root, bg='white')
frame.place(relwidth=0.8, relheight=0.8, relx=0.1, rely=0.1)
entry1=tk.Entry(root)
canvas.create_window(200, 200, window=entry1)
entry1.place(x=40, y=50)
labelanswer=tk.Label(root, bg='teal')
labelanswer.place(x=45,y=45)
def to_kg():
kg=float(entry1.get())/2.205
labelanswer['text'] = kg
labeltext=tk.Label(root, text='lbs to kg', bg='white')
button1=tk.Button(root, text="convert", command=to_kg)
button1.pack(side=BOTTOM)
canvas.pack()
labelanswer.pack()
frame.pack()
root.mainloop()

labelanswer['text'] = kg行是更改答案标签的一种方式。

最新更新