在Tkinter的OptionMenu中添加命令?

3
我正在使用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个回答

10

永远不需要直接调用apply,这就是为什么在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)

1
apply()自2.3版本起已被弃用(根据当前2.7版本的文档)。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接