Я работаю над небольшим проектом, и у меня возникают проблемы с получением значений, хранящихся в комбинированных полях.В программе есть кнопка «плюс», которая создает дополнительные поля под существующими.Они создаются путем вызова функции «создать», которая создает новый экземпляр класса ComboBox, где поле создается и выводится на экран.Затем предполагается, что отдельная функция «submit» проходит цикл, извлекает все значения блоков и сохраняет их в списке.Мой главный недостаток в том, что я использовал данные в именах переменных, но я понятия не имею, как еще сделать это в этом сценарии.У кого-нибудь есть альтернативное решение?
(есть некоторые закадровые переменные, которые здесь показаны в качестве параметров, но определенно нет источника проблемы)
class ComboBox:
def __init__(self, master, counter, fields):
self.master = master
self.counter = counter
self.fields = fields
self.field_box = ttk.Combobox(width=20)
self.field_box["values"] = fields
self.field_box.grid(row=counter + 1, column=0, pady=5)
def get_value(self):
value = self.field_box.get()
return value
def create():
global entry_counter
name = "loop"+str(entry_counter-1)
name = ComboBox(window, entry_counter, fields)
values.append(name.get_value())
entry_counter += 1
def submit():
for i in range(1, entry_counter):
name = "loop" + str(entry_counter-1)
values.append(name.get_value())
Например, если бы я создал 2 поля и выбрал опции «test1» и «test2», я бы хотел, чтобы список моих значений содержал ["test1, "test2"]