为什么按下“重置”按钮时标签就不能清除?

2024-10-01 22:30:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个程序,把公里转换成英里,把英里转换成公里。当数值显示出来时,我希望有一个重置按钮,重置值和用户编号的数字。在

我可以输入要清除的数字,但不能输入标签(finalKilo,finalMile)。有什么建议吗?在

另外,有没有其他方法可以不使用标签来显示计算值?在

from tkinter import *

def closeWin():
   myGui.destroy()                   #Close Window Function

def kiloFunc():
    myText = kiloMent.get()          #Kilometers to Miles Fuction
    convert = 0.62
    miles = myText * convert
    finalKilo = Label(text = miles,fg='red',justify='center').place(x=200,y=80)


def mileFunc():
    myText2 = mileMent.get()         #Miles to Kilometers Function
    convertTwo = myText2 // 0.62    
    finalMile = Label(text = convertTwo, fg = 'red',justify='center').place(x=200,y=170)


def reset_values():
    kiloMent.set(0)
    mileMent.set(0)      #Resets the Data
    finalKilo.set("")
    finalMile.set("")



       #The GUI


myGui = Tk()

kiloMent = IntVar()
mileMent = IntVar()

myGui.title("Distance Converter")
myGui.geometry("450x200+500+200")

myLabel = Label(text="Welcome! Please enter your value then choose your option:",fg="blue",justify='center')
myLabel.pack()

kiloEntry = Entry(myGui, textvariable =   kiloMent,justify='center').pack()

kilo2milesButton = Button(text = "Kilometers to Miles!", command =     kiloFunc).pack()

mileEntry = Entry(myGui, textvariable =     mileMent,justify='center').place(x=130,y=105)

miles2kiloButton = Button(text = "Miles to Kilometers!", command = mileFunc).place(x=150,y=135)

reset = Button(text = "Reset Values!", command = reset_values).place(x=10,y=165)

quit = Button(text="Quit", command = closeWin).place(x=385,y=165)

myGui.mainloop()

Tags: totextdefplacebuttoncommandcenterset
2条回答

卡利迪奥是对的,有多处错误:)

我已经调整了代码,把它放到一个类中,现在它应该可以工作了。在

现在它在试图更改标签时引用实际变量(miles和convertTwo)。你提到了标签本身。在这种情况下,你可能应该做些类似的事情:

finalKilo.config(text = "")
finalMile.config(text = "")

另一个问题是,您只在给定了an条目之后才定义了标签,而在reset中则将两者都重置。因此,如果第一次只给出一个条目并按下重置,就会弹出一个错误,说明其中一个标签未定义/None。在

下面的代码应该可以工作。在

^{pr2}$

与其在每次转换上创建新标签,不如为结果创建一个单独的标签,并为其分配一个textvariable,这是StringVar的一个实例,而不是text。在该变量上,可以调用set来更改与该变量关联的标签文本

相关问题 更多 >

    热门问题