编写一个GUI程序,将摄氏温度转换为华氏温度。用户应该能够输入摄氏度温度,单击按钮,然后查看等效的华氏温度。使用以下公式进行转换:
F =(9/5)C + 32
F是华氏温度,C是摄氏温度。
这就是我所拥有的,但是当我运行它时,什么也没发生:
#import
#main function
from tkinter import *
def main():
root=Tk()
root.title("Some GUI")
root.geometry("400x700")
#someothersting=""
someotherstring=""
#enter Celcius
L1=Label(root,text="Enter a Celcius temperature.")
E1=Entry(root,textvariable=someotherstring)
somebutton=Button(root, text="Total", command=lambda: convert(E1.get()))
somebutton.pack()
E1.pack()
L1.pack()
root.mainloop()#main loop
#convert Celcius to Fahrenheit
def convert(somestring):
if somestring != "":
cel=int(somestring)
far=(9/5*(cel))+32
print(far)
答案 0 :(得分:0)
主要问题是缺少main()
。
您应该在代码的末尾添加main()
。就是说,您真的不需要main()
函数。
您正在尝试在输入字段中将字符串分配为文本变量,这将无济于事。如果要使用textvariable
参数,则需要使用StringVar()
或IntVar()
之类的东西。我们在这里不需要这样的东西。我们可以在您的entry.get()
函数中简单地使用convert
方法。
通过将此get()
方法移至convert
函数,我们可以从按钮命令中删除lambda。只需执行command=convert
。
通过这些更改,您可以像下面这样简单地进行操作。
from tkinter import *
def convert():
x = entry.get()
if x != "":
cel=int(x)
far=(9/5*(cel))+32
print(far)
root=Tk()
root.title("Some GUI")
root.geometry("400x700")
Button(root, text="Total", command=convert).pack()
entry = Entry(root)
entry.pack()
Label(root,text="Enter a Celcius temperature.").pack()
root.mainloop()
答案 1 :(得分:-2)
E.G:
string_answer = entryBox.get()
celsius = int(string_answer)
fahrenheit = (9/5)celsius + 32