У меня есть окно, отображающее древовидное представление нескольких записей, извлеченных с сервера MySql.Я надеялся показать другое всплывающее окно с записями и выпадающими списками, и их значения по умолчанию были установлены на основании информации о записи, которая была выбрана.
Проблема в том, что вместо полей ничего не отображаетсяостаются пробелы
Я попытался установить textvariable=var.get()
, но это не позволяет комбобоксу изменять значения и собирать данные пользователей.
Я также пытался использовать класс:
class Application:
def __init__(self, parent, vars, pos_x, pos_y, to_test, width):
self.parent = parent
self.vars = vars
self.pos_x = pos_x
self.pos_y = pos_y
self.to_test = to_test
self.width = width
self.combo()
def combo(self):
self.box_value = tk.StringVar()
self.box = ttk.Combobox(self.parent, width=self.width,
textvariable=self.box_value)
self.box['values'] = self.vars
for i in range(len(self.vars)):
if not self.to_test == 'None':
if self.vars[i] == self.to_test:
self.box.current(i)
self.box.place(x=self.pos_x, y=self.pos_y)
#I have the function edit_tree called in a button of a previous window win
#The tree is the tree view displayed in the previous window
def edit_tree(win, tree):
selected = tree.selection()
edit_vendor_window = tk.Toplevel(win)
edit_vendor_window.geometry('600x570')
tk.Label(edit_vendor_window, text='Report Date:').place(x=10, y=10)
vars = ('2018', '2019')
Application(edit_vendor_window, vars, 150, 10, tree.item(selected,
'values)[0], 5)
Я видел в некоторых других ответах, что проблема в том, что StringVar
собирает мусор, и решение состоит в том, чтобы использовать класс.Но это не работает для меня.Эти вещи просто сводили меня с ума.Пожалуйста, помогите мне.