temperatureA does not take from the selection box in the pop up?

37 views Asked by At

Line 56 in the code temperatureA = watertemperature.get() does not retrieve the watertemperature from the dropdown menu.

When I input a value in place of "watertempterature.get()" ie temperatureA = "40" the code that follows gives the expected answer.

Why does the code not retrieve the value as expected?

import tkinter
from tkinter import messagebox, ttk
from tkinter import ttk  # set root root = tkinter.Tk()

root = tkinter.Tk()
root.geometry("270x150")

a = tkinter.Label(root, text="Technology")
a.grid(row=1, column=1, columnspan=2, padx=10, pady=2,
       sticky='w')  
# grid 
X1 = ["18.3", "4.7", "15.9", "5.5", "50"] 
X2 = ["74", "5.8", "21.1", "6.56", "50"] 
X3 = ["28.7", "7.5", "29.3", "8.5", "50"] 
X4 = ["41", "9.4", "23", "10.3", "40"] 
X5 = ["44.7", "11.8", "45.2", "13.4", "50"] 
X6 = ["78", "11.8", "48.7", "11.9", "35"]

units = [X1 + X2 + X3 + X4 + X5 + X6]

type = ["Heat Pumps", "Heat Interface Units", "District Heat Networks", "photovotaic panels"]

watertemp = [["35", "40", "45", "50", "55", "60", "65"],  ["44", "22", "14", "75"],  ["12", "28", "15"],  ["25",
                                                                                                                   "42",
                                                                                                                   "91"]] 
 
techtype = ttk.Combobox(root, width=37, value=(type))
techtype.grid(row=3, column=1, columnspan=2, padx=10, pady=2, sticky='w')


def callback(eventObject):
    abc = eventObject.widget.get()


    water = techtype.get()
    index = type.index(water)
    watertemperature.config(values=watertemp[index])
    temperatureA = watertemperature.get()
    print(temperatureA)
      # Find value from index location
    temperature = [item[4] for item in units]


    # Find value index
    degreesindex = [i for i in range(len(temperature)) if temperature[i] == temperatureA]

    # Creates list from temperature
    res_list = [units[i] for i in degreesindex]

    # Find the heating load
    duty = [item[0] for item in res_list]

    print(duty)

watertemperature = ttk.Combobox(root, width=37, value=watertemp)
watertemperature.grid(row=4, column=1, columnspan=2, padx=10, pady=2, sticky='w')
watertemperature.bind('<Button-1>', callback)

root.mainloop()
0

There are 0 answers