是否有一种方法可以获取OptionMenu的选择,而又不知道选择项保存在其中的StringVar的名称?
我有一个功能,可以自动创建更多的OptionMenu项,并为其变量赋予相同的名称。还将OptionMenu对象保存在列表中:
def addInternalPartipantList():
global coworkerDict
global f
choiceVar1 = StringVar(window)
choiceVar1.set('Vælg medarbejder')
coworkerChoice = OptionMenu(window, choiceVar1, *coworkerDict)
f += 1
coworkerChoice.grid(column = 2, row = f)
chosenCoworkers.append(coworkerChoice)
现在我可以做类似的事情了
chosenCoworkers[0].getVar().get()
要在特定的OptionMenu中找到选定的同事?
或者还有另一种方法可以指定要获取哪个值的choiceVar1
吗?
如果与该问题的答案相关,则通过按钮调用该函数
答案 0 :(得分:0)
这是一个简单的示例,说明当有人选择项目时如何检查值。
在OptionsMenu方法中使用命令引用函数时,该命令将自动传递选择为事件的值。这样,您实际上甚至可以在不知道StringVar的情况下使用该值进行操作。
import tkinter as tk
root = tk.Tk()
def print_choice(event):
print(choice_var.get()) # prints value based on choice var
print(event)# prints selection directly from the event passed by the command in OptionMenu
working_list = ["Option 1", "Option 2", "Option 3", "Option 4"]
choice_var = tk.StringVar()
tk.OptionMenu(root, choice_var, *working_list, command=print_choice).pack()
root.mainloop()
这是另一个例子。如果将命令设置为一个函数,则创建多少个OptionsMenu都无所谓,您始终可以在不知道StringVar的情况下获得所选的值。
import tkinter as tk
root = tk.Tk()
def print_choice(event):
print(event)# prints selection directly from the event passed by the command in OptionMenu
working_list = ["Option 1", "Option 2", "Option 3", "Option 4"]
for i in range(4):
tk.OptionMenu(root, tk.StringVar(), *working_list, command=print_choice).pack()
root.mainloop()