Работаю с Tkinter, и у меня возникают проблемы с правильной работой OptionMenu. Я создаю новое окно внутри функции с OptionMenu и меткой. Достаточно просто. Но, похоже, я не могу выбрать вариант в OptionMenu. Если я вынесу его за пределы функции, все будет нормально. Но мне нужно иметь возможность создавать окно при вызове функции.
Вот функция:
def ask_a_question():
question = Tk()
question.geometry('300x100')
qs = ['test0', 'test1', 'test2']
q = StringVar()
q.set(None)
Label(question, text = "placeholder").grid(row = 0, column = 0, padx = 10, pady = 10)
questions = OptionMenu(question, q, *qs)
questions.grid(row = 1, column = 0, padx = 10, pady = 10)
question.mainloop()
Приведенный выше код выполняется как команда на кнопке.
В создаваемом им окне я вижу все виджеты, но выбор любого из параметров в OptionMenu не обновляет его. У меня была аналогичная проблема с изображениями кнопок при создании окна в основном коде и создании кнопки в функции. Tkinter плохо работает с функциями? Или есть трюк, чтобы заставить его работать правильно?
from tkinter import *
, вы забиваете пространство имен множеством вещей, и иногда это может привести к проблемам. Например, если вы определяете класс / функцию / переменную с тем же именем, что и имя tkinter, могут возникнуть конфликты имен. 13.12.2017