我正在使用 GUI 为我的第一个主要项目制作温度转换器,即 Tkinter 模块。我在初始化 GUI 时没有任何问题。这很好用(据我所知)。我需要一些帮助来制作 IF 语句来调用与转换相关的每个函数。我遇到的问题是我不确定如何显示来自两个不同列表的两个项目之间的等价性。这是我的代码(我知道我遗漏了一些东西。显然是 if 语句。)
from tkinter import *
gui = Tk()
gui.title(string='Temperature Converter')
#create the GUI
fromUnit = StringVar()
#variable which holds the value of which unit is active in "units1"
toUnit = StringVar()
#variable which holds the value of which unit is active in "units2"
initialTemp = StringVar()
#the initial temperature entered in "enterTemp" entry
initialTemp.set('0')
#set the initial temperature to 0
convertedTemp = StringVar()
#used to display the converted temperature through "displayTemp"
convertedTemp.set('0')
#set the converted temperature to 0
units1 = ('Celsius', 'Fahrenheit', 'Kelvin') #the units used in the OptionMenu
units2 = ('Celsius', 'Fahrenheit', 'Kelvin')
fromUnit.set(units1[0]) #set the active element to the item in index[0] of units1
toUnit.set(units2[0]) #set the active element to the item in index[0] of units2
# celsius-celcius conversion
def celsius_to_celsius():
currentTemp = float(initialTemp.get())
convertedTemp.set(currentTemp)
# celsius-kelvin conversion
def celsius_to_kelvin():
currentTemp = float(initialTemp.get())
currentTemp = (currentTemp + 273.15)
convertedTemp.set(currentTemp)
# celsius-fahrenheit conversion
def celsius_to_fahrenheit():
currentTemp = float(initialTemp.get())
currentTemp = (currentTemp * (9/5))+32
convertedTemp.set(currentTemp)
#fahrenheit-fahrenheit conversion
def fahrenheit_to_fahrenheit():
currentTemp = float(initialTemp.get())
convertedTemp.set(currentTemp)
#fahrenheit-celsius conversion
def fahrenheit_to_celsius():
currentTemp = float(initialTemp.get())
currentTemp = ((currentTemp - 32)*(5/9))
convertedTemp.set(currentTemp)
#fahrenheit-kelvin conversion
def fahrenheit_to_kelvin():
currentTemp = float(initialTemp.get())
currentTemp = ((currentTemp - 32)*(5/9)+273.15)
convertedTemp.set(currentTemp)
#kelvin-kelvin conversion
def kelvin_to_kelvin():
currentTemp = float(initialTemp.get())
convertedTemp.set(currentTemp)
#kelvin-celsius conversion
def kelvin_to_celsius():
currentTemp = float(initialTemp.get())
currentTemp = (currentTemp - 273.15)
convertedTemp.set(currentTemp)
#kelvin-fahrenheit conversion
def kelvin_to_fahrenheit():
currentTemp = float(initialTemp.get())
currentTemp = (((currentTemp - 273.15)*(9/5))+32)
convertedTemp.set(currentTemp)
#main function
#contains the if statements which select which conversion to use
def convert_Temp():
currentTemp = float(initialTemp.get())
if (fromUnit, toUnit) == ('Celsius','Celsius'):
celsius_to_celsius()
gui.geometry('+100+100')
#set up the geometry
enterTemp = Entry(gui,textvariable=initialTemp,justify=RIGHT)
enterTemp.grid(row=0,column=0)
#Entry which receives the temperature to convert
convertFromUnit = OptionMenu(gui,fromUnit,*units1)
convertFromUnit.grid(row=0,column=1)
#Option Menu which selects which unit to convert from
displayTemp = Label(gui,textvariable=convertedTemp)
displayTemp.grid(row=1,column=0)
#Label which displays the temperature
#Takes text variable "convertTemp"
convertToUnit = OptionMenu(gui,toUnit,*units2)
convertToUnit.grid(row=1,column=1)
#Option Menu which selects which unit to convert to
convertButton = Button(gui,text='Convert',command=convert_Temp)
convertButton.grid(row=2,column=1)
#Button that starts the conversion
#Calls the main function "convert_Temp"
gui.mainloop()
#End of the main loop
感谢您的观看以及您提供的任何帮助和批评。没有知识是浪费的!干杯