将命令添加到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
调用时更改选项的功能 ,并 从列表中获取可能的选项?
问题答案:
永远不需要直接应用调用,这就是在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)