Я пытаюсь удалить значения, которые уже выбраны в разных выпадающих списках.Моей первой попыткой было прочитать выбранное значение в выпадающем списке, а затем удалить его из списка, но у меня это не сработало, затем я попытался собрать функцию, которая бы считывала, какой выпадающий список изменил свое значение и поместил его в список так,его можно удалить из основного списка, ни одна из этих попыток не сработала.
КОД ДЛЯ ОКНА:
class Selector_Canal(tk.Frame):
def __init__(self, parent, controller):
#VENTANA
tk.Frame.__init__(self, parent)
#LABEL
label = ttk.Label(self, text="Seleccion de canales", font=Letra_Grande)
label.pack(pady=10,padx=10)
#LABEL
label = ttk.Label(self, text="Argon")
label.pack()
#LISTA
#COMBOBOX
lista = ["" ,"A", "B", "C", "D"]
lista_id = []
combo_var1 = tk.StringVar()
combo1 = ttk.Combobox(self, values = lista, textvariable=combo_var1, state = 'readonly')
combo1.current(0)
combo1.pack(pady=10, padx=10)
#LABEL
label = ttk.Label(self, text="Nitrogeno")
label.pack()
#COMBOBOX
combo_var2 = tk.StringVar()
combo2 = ttk.Combobox(self, values = lista, textvariable=combo_var2, state = 'readonly')
combo2.current(0)
combo2.pack(pady=10, padx=10)
#LABEL
label = ttk.Label(self, text="Oxigeno")
label.pack()
#COMBOBOX
combo_var3 = tk.StringVar()
combo3 = ttk.Combobox(self, values = lista, textvariable=combo_var3, state = 'readonly')
combo3.current(0)
combo3.pack(pady=10, padx=10)
#LABEL
label = ttk.Label(self, text="Hidrogeno")
label.pack()
#COMBOBOX
combo_var4 = tk.StringVar()
combo4 = ttk.Combobox(self, values =lista, textvariable=combo_var4, state = 'readonly')
combo4.current(0)
combo4.pack(pady=10, padx=10)
combo1.bind("<<ComboboxSelected>>", lambda x: [id_a(lista_id ,lista, combo_var1, combo_var2, combo_var3, combo_var4, combo1,
combo2, combo3, combo4)])
combo2.bind("<<ComboboxSelected>>", lambda x: [id_b(lista_id ,lista, combo_var1, combo_var2, combo_var3, combo_var4, combo1,
combo2, combo3, combo4)])
combo3.bind("<<ComboboxSelected>>", lambda x: [id_c(lista_id ,lista, combo_var1, combo_var2, combo_var3, combo_var4, combo1,
combo2, combo3, combo4)])
combo4.bind("<<ComboboxSelected>>", lambda x: [id_d(lista_id ,lista, combo_var1, combo_var2, combo_var3, combo_var4, combo1,
combo2, combo3, combo4)])
#BOTON
button1 = ttk.Button(self, text="Aceptar",
command=lambda: [normalizacion_canal(combo_var1, combo_var2, combo_var3, combo_var4)])
button1.pack()
#BOTON
button2 = ttk.Button(self, text="Home",
command=lambda: [controller.show_frame(Pagina_Inicio)])
button2.pack()
CODE OF FUNCTION:
def id_a(lista_id, lista ,combo_var1, combo_var2, combo_var3, combo_var4, combo1, combo2, combo3, combo4):
id = 1
edit_combobox1(lista_id, id, lista, combo_var1, combo_var2, combo_var3, combo_var4, combo1, combo2, combo3, combo4)
def id_b(lista_id, lista ,combo_var1, combo_var2, combo_var3, combo_var4, combo1, combo2, combo3, combo4):
id = 2
edit_combobox1(lista_id, id, lista, combo_var1, combo_var2, combo_var3, combo_var4, combo1, combo2, combo3, combo4)
def id_c(lista_id, lista ,combo_var1, combo_var2, combo_var3, combo_var4, combo1, combo2, combo3, combo4):
id = 3
edit_combobox1(lista_id, id, lista, combo_var1, combo_var2, combo_var3, combo_var4, combo1, combo2, combo3, combo4)
def id_d(lista_id, lista ,combo_var1, combo_var2, combo_var3, combo_var4, combo1, combo2, combo3, combo4):
id = 4
edit_combobox1(lista_id, id, lista, combo_var1, combo_var2, combo_var3, combo_var4, combo1, combo2, combo3, combo4)
def edit_combobox1(lista_id, id, lista, combo_var1, combo_var2, combo_var3, combo_var4, combo1, combo2, combo3, combo4):
print("\n+++++++++++++++++++++++++++++++++++++\n")
lista_cache = []
lista_id.append(id)
print("Valores de ID en lista: ", lista_id)
print("ID seleccionado: ", id)
print("lista: ", lista)
print("\n")
if id == 1:
lista_cache.append(combo_var1.get())
list((set(lista_cache)))
print("Valor seleccionado en lista: ", lista_cache)
print("Valor lista: ", lista)
lista_editada = list(filter(lambda x: x not in lista_cache, lista))
print("Lista a imprimir: ", lista_editada)
print("ID en if: ", lista_id[0])
print(len(list(set(lista_id))))
if 'B' in lista_editada and lista_id[0] == 2:
lista_editada.remove('A')
print(lista_editada)
if 'D' in lista_editada and lista_id[0] == 3:
lista_editada.remove('D')
print(lista_editada)
if 'C' in lista_editada and lista_id[0] == 4:
lista_editada.remove('C')
print(lista_editada)
#id_pasado = id
print("Reimpresion de lista: ",lista_editada)
combo2.config(values = lista_editada)
combo3.config(values = lista_editada)
combo4.config(values = lista_editada)
if id == 2:
lista_cache.append(combo_var2.get())
list((set(lista_cache)))
print("Valor seleccionado en lista: ", lista_cache)
lista_editada = list(filter(lambda x: x not in lista_cache, lista))
print("Lista a imprimir: ", lista)
print("ID en if: ", lista_id[0])
print(len(list(set(lista_id))))
if 'A' in lista_editada and lista_id[0] == 1:
lista_editada.remove('A')
print(lista_editada)
if 'D' in lista_editada and lista_id[0] == 3:
lista_editada.remove('D')
print(lista_editada)
if 'C' in lista_editada and lista_id[0] == 4:
lista_editada.remove('C')
print(lista_editada)
#id_pasado = id
print("Reimpresion de lista: ",lista_editada)
combo1.config(values = lista_editada)
combo3.config(values = lista_editada)
combo4.config(values = lista_editada)
if id == 3:
lista_cache.append(combo_var3.get())
list((set(lista_cache)))
print("Valor seleccionado en lista: ", lista_cache)
lista_editada = list(filter(lambda x: x not in lista_cache, lista))
print("Lista a imprimir: ", lista_editada)
print("ID en if: ", lista_id[0])
if 'A' in lista_editada and lista_id[0] == 1:
lista_editada.remove('A')
print(lista_editada)
if 'B' in lista_editada and lista_id[0] == 2:
lista_editada.remove('B')
print(lista_editada)
if 'D' in lista_editada and lista_id[0] == 4:
lista_editada.remove('C')
print(lista_editada)
print("Reimpresion de lista: ",lista_editada)
combo1.config(values = lista_editada)
combo2.config(values = lista_editada)
combo4.config(values = lista_editada)
if id == 4:
lista_cache.append(combo_var4.get())
list((set(lista_cache)))
print("Valor seleccionado en lista: ", lista_cache)
lista_editada = list(filter(lambda x: x not in lista_cache, lista))
print("Lista a imprimir: ", lista_editada)
print("ID en if: ", lista_id[0])
if 'A' in lista_editada and lista_id[0] == 1:
lista_editada.remove('A')
print(lista_editada)
if 'B' in lista_editada and lista_id[0] == 2:
lista_editada.remove('B')
print(lista_editada)
if 'C' in lista_editada and lista_id[0] == 3:
lista_editada.remove('C')
print(lista_editada)
print("Reimpresion de lista: ",lista_editada)
combo1.config(values = lista_editada)
combo2.config(values = lista_editada)
combo4.config(values = lista_editada)