GUI、つまりTkinterモジュールを使用して、最初のメインプロジェクトの温度コンバーターを作成しています。GUI の初期化に問題はありません。それはうまくいきます(私の知る限り)。変換に関連する各関数を呼び出すための IF ステートメントを作成する際に支援が必要です。私が抱えている問題は、2 つの異なるリストからの 2 つのアイテム間の同等性を示す方法がわからないことです。これが私のコードです(いくつか不足していることはわかっています。明らかに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
ご覧いただき、ありがとうございます。知識は無駄になりません!乾杯