Добавление команды в Tkinter OptionMenu?
Я пишу код в Python 2.7.8, который включает в себя OptionMenu
виджет. Я хотел бы создать OptionMenu
который вызывает функцию при изменении параметра, но я также хочу, чтобы возможные варианты были найдены в списке, как мой последний OptionMenu
будет много вариантов.
Я использовал следующий код для создания OptionMenu
который вызывает функцию:
from Tkinter import*
def func(value):
print(value)
root = Tk()
var = StringVar()
DropDownMenu=OptionMenu(root, var, "1", "2", "3", command=func)
DropDownMenu.place(x=10, y=10)
root.mainloop()
Я также нашел следующий код, который создает OptionMenu
с параметрами, найденными в списке:
from Tkinter import*
root = Tk()
Options=["1", "2", "3"]
var = StringVar()
DropDownMenu=apply(OptionMenu, (root, var) + tuple(Options))
DropDownMenu.place(x=10, y=10)
root.mainloop()
Как бы я создал OptionMenu
что вызывает функцию при изменении опции и получает возможные опции из списка?
1 ответ
Нет необходимости в прямом вызове, поэтому он устарел в версии 2.7 и пропущен в версии 3.0. Вместо этого используйте синтаксис *seq. Просто объедините две вещи, которые вы сделали. Следующее, кажется, делает то, что вы хотите.
from tkinter import *
def func(value):
print(value)
root = Tk()
options = ["1", "2", "3"]
var = StringVar()
drop = OptionMenu(root, var, *options, command=func)
drop.place(x=10, y=10)