Trace Variable не работает как задумано python tkinter - PullRequest
0 голосов
/ 10 января 2020

в следующем коде я хочу иметь возможность изменить значение поля со списком и сразу же иметь метки и поля ввода на форме. код, который я пытался использовать, не работает, как задумано, но я не получаю никаких ошибок.

nb = ttk.Notebook(root)
nb.grid(row=1, column=0, columnspan=50, rowspan=49, sticky='NESW')

page1 = ttk.Frame(nb, style='body.TFrame')
nb.add(page1, text='Create Tasks')

specify = StringVar()

site_lbl = Label(page1, text="Site", bg='#1C2833', fg='#FDFEFE', font=("Helvetica", 14))
site_lbl.place(x=5, y=20)
site_combo = ttk.Combobox(page1, width=15, values=[
    'YeezySupply'
])
site_combo.place(x=55, y=25)


def add_store_options_ys():
    if specify.get() == 'YeezySupply':
        stylecode_lbl = Label(page1, text="Site", bg='#1C2833', fg='#FDFEFE', font=("Helvetica", 14))
        stylecode_lbl.place(x=5, y=20)
        stylecode_entry = Entry(page1, width=15, bg='#1C2833', fg='#FDFEFE', font=("Helvetica", 8))
        stylecode_entry.place(x=55, y=25)


specify.trace_variable("w", add_store_options_ys)


Я знаю, что мог бы сделать это, используя кнопку, чтобы затем вызвать функцию, но я не хочу использовать кнопку, и я хочу, чтобы она проверяла автоматически, а затем обновляла страницу с метками и полем ввода ,

1 Ответ

1 голос
/ 10 января 2020

Вы не связали переменную со списком. Следовательно, переменная не изменяется при выборе значения, и, следовательно, трассировка не запускается.

site_combo = ttk.Combobox(..., textvariable=specify)

В таком случае у вас будет проблема с тем, что функция не принимает значения, передаваемые переменная трассировка. Для получения дополнительной информации см. Каковы аргументы для обратных вызовов метода трассировки переменных Tkinter?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...