我正在做一个程序,把公里转换成英里,把英里转换成公里。当数值显示出来时,我希望有一个重置按钮,重置值和用户编号的数字。在
我可以输入要清除的数字,但不能输入标签(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()
卡利迪奥是对的,有多处错误:)
我已经调整了代码,把它放到一个类中,现在它应该可以工作了。在
现在它在试图更改标签时引用实际变量(miles和convertTwo)。你提到了标签本身。在这种情况下,你可能应该做些类似的事情:
另一个问题是,您只在给定了an条目之后才定义了标签,而在reset中则将两者都重置。因此,如果第一次只给出一个条目并按下重置,就会弹出一个错误,说明其中一个标签未定义/None。在
下面的代码应该可以工作。在
^{pr2}$与其在每次转换上创建新标签,不如为结果创建一个单独的标签,并为其分配一个
textvariable
,这是StringVar
的一个实例,而不是text
。在该变量上,可以调用set
来更改与该变量关联的标签文本相关问题 更多 >
编程相关推荐