Python tkinter选项菜单的虚拟事件

Python tkinter选项菜单的虚拟事件,python,tkinter,optionmenu,Python,Tkinter,Optionmenu,我已经找了很长一段时间了,我找不到我要找的东西,所以如果这不存在或者不是最好的方法,请告诉我 我希望能够在从Optionmenu() 我还希望它使用虚拟事件,类似于这样:my_tree.bind(“”,function) 是否有一个列表,我可以找到tkinter小部件的所有虚拟事件 我希望能够在从Optionmenu()中选择选项时触发和事件 方法是向与选项菜单相关联的变量添加跟踪 colors = ("red", "orange", "yell

我已经找了很长一段时间了,我找不到我要找的东西,所以如果这不存在或者不是最好的方法,请告诉我

我希望能够在从
Optionmenu()

我还希望它使用虚拟事件,类似于这样:
my_tree.bind(“”,function)

是否有一个列表,我可以找到tkinter小部件的所有虚拟事件

我希望能够在从Optionmenu()中选择选项时触发和事件

方法是向与
选项菜单相关联的变量添加跟踪

colors = ("red", "orange", "yellow", "green", "blue", "indigo", "violet")
color_var = tk.StringVar(value=colors[0])
om = tk.OptionMenu(root, color_var, *colors)


def color_callback(varname, idx, mode):
    print(f"the color changed to {root.getvar(varname)}")
color_var.trace_add(("write", "unset"), color_callback)
我还希望它使用虚拟事件,类似于:my_tree.bind(“”,function)

选项菜单
不支持虚拟事件,但您可以根据需要创建虚拟事件。在跟踪的回调中,可以生成虚拟事件,然后可以将其绑定到:

def create_virtual_event(varname, idx, mode):
    om.event_generate("<<OptionMenuChanged>>")
color_var.trace_add(("write", "unset"), create_virtual_event)

def color_callback(event):
    print(f"the color changed to {color_var.get()}")
om.bind("<<OptionMenuChanged>>", color_callback)
def create_virtual_事件(varname、idx、mode):
om.event_generate(“”)
颜色变量跟踪添加((“写入”、“取消设置”),创建虚拟事件)
def color_回调(事件):
打印(f“颜色更改为{color\u var.get()}”)
om.bind(“,color\u回调)
是否有一个列表,我可以找到tkinter小部件的所有虚拟事件


所有预定义虚拟事件的规范列表位于上。

这是否回答了您的问题?不,我想使用虚拟事件,而不是.trace()