Python получение пользовательского ввода с Tkinter - PullRequest
0 голосов
/ 29 апреля 2020

В моей Python программе где-то посередине я выскакиваю Tkinter GUI, чтобы получить пользовательский ввод. Пользователь выбирает опцию в Tkinter.ttk Combobox. Отсюда, как только пользователь закрывает окно Tkinter, я хочу, чтобы выбор, сделанный пользователем, использовался далее в коде. Но после закрытия не удалось вернуть выбор пользователя обратно в код.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 29 апреля 2020

Один из способов - создать StringVar() в окне root, а затем связать его с Combobox() в окне Toplevel(). Поле со списком изменит значение StringVar(), и вы можете прочитать его после закрытия всплывающего окна.

from tkinter import *
from tkinter import ttk

root = Tk()

combotext = StringVar()

def get_input():
    popup = Toplevel()
    box = ttk.Combobox(popup, textvariable=combotext, state='readonly')
    box['values'] = ("Camembert", "Brie", "Tilsit", "Stilton")
    combotext.set('Choose')
    box.pack(padx=20, pady=20)

Button(root, text='Get input', command=get_input).pack(padx=90, pady=10)
Label(root, textvariable=combotext).pack(pady=(0,10))

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