摄氏到华氏转换器的GUI程序python

时间:2018-07-07 19:45:28

标签: python tkinter

编写一个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)

2 个答案:

答案 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)

1。您可以使用Python的GUI工具包为程序创建GUI。您可以使用TKinter作为开始。还必须包含一个用于输入摄氏度数据的输入框。

2。创建GUI之后,只需从该框中获取值,然后使用公式计算等效的华氏温度即可。您可以使用this教程,了解如何从输入框中获取数据。

E.G:

 string_answer = entryBox.get()
 celsius = int(string_answer)
 fahrenheit = (9/5)celsius + 32

3。将数据显示到您的GUI界面。