Как используя add_radiobutton() для каскада в Menu() из Tkinter установить галочку по умолчанию напротив одного из значений?
Когда запускается программа с размерами по умолчанию, например 10х10, в подменю size галочка уже должна стоять напротив строки 10х10. Пробовал ответ отсюда, но тогда изначально галочки все равно нет, а если её поставить, то она уже не снимается. Нужно изначально указать один из вариантов, а дальше чтобы можно было выбирать любой вариант
from tkinter import Tk, Menu
root = Tk()
menubar = Menu(root)
size = Menu(menubar, tearoff=0)
size.add_radiobutton(label='5x5')
size.add_radiobutton(label='10x10') # <- Нужно чтобы тут сразу стояла галочка при запуске.
# А при выборе другого варианта она снималась,
# как и в данном примере
size.add_radiobutton(label='15x15')
menubar.add_cascade(label='Size', menu=size)
root.config(menu=menubar)
root.mainloop()
Ответы (1 шт):
Автор решения: Jericho
→ Ссылка
В англоязычной версии сайта подсказали как правильно использовать IntVar со значением по умолчанию, variable и value. В реальности я это всё в методе класса применял, поэтому чтобы заработало пришлось self.size_var использовать. В остальном способ идеально решил проблему
from tkinter import Tk, Menu, IntVar
root = Tk()
menubar = Menu(root)
size = Menu(tearoff=0)
size_var = IntVar(value=10)
size.add_radiobutton(label='5x5', variable=size_var)
size.add_radiobutton(label='10x10', variable=size_var, value=10)
size.add_radiobutton(label='15x15', variable=size_var)
menubar.add_cascade(label='Size', menu=size)
root.config(menu=menubar)
root.mainloop()