Tkinter是Python的一个GUI库,用于创建图形用户界面。OptionMenu是Tkinter中的一个小部件,用于创建下拉菜单。
回答问题,如果列表发生更改,Tkinter的OptionMenu回调将不起作用。这是因为OptionMenu的回调函数是在创建OptionMenu时绑定的,如果列表发生更改,回调函数不会自动更新。
要解决这个问题,可以使用Tkinter的变量绑定机制。可以使用Tkinter中的StringVar、IntVar、DoubleVar等变量类型来绑定OptionMenu的值。当列表发生更改时,可以通过修改绑定的变量的值来触发回调函数。
以下是一个示例代码:
import tkinter as tk
def option_changed(*args):
selected_option = var.get()
print("Selected option:", selected_option)
root = tk.Tk()
options = ["Option 1", "Option 2", "Option 3"]
var = tk.StringVar(root)
var.set(options[0]) # 设置默认选项
option_menu = tk.OptionMenu(root, var, *options, command=option_changed)
option_menu.pack()
root.mainloop()
在上面的示例中,我们创建了一个OptionMenu,并将其值绑定到了一个StringVar变量var上。在回调函数option_changed中,我们通过var.get()获取当前选中的选项。
这样,无论列表是否发生更改,只要修改了var的值,回调函数就会被触发,并且可以获取到最新的选项。
关于Tkinter的OptionMenu更多的信息,你可以参考腾讯云的文档:Tkinter OptionMenu
领取专属 10元无门槛券
手把手带您无忧上云