将文本传递给tkinter中的菜单标签

时间:2014-02-10 12:24:09

标签: python tkinter

我想在选择下创建文本,在变量'a'中显示为菜单的标签。 这是代码:

def popup(event):
    a=t_start.get("sel.first", "sel.last")
    menu.post(event.x_root, event.y_root)
    return a

def insert_word():
    pass

t_start.bind("<Button-3>", popup)


menu = Menu(root, tearoff=0)
menu.add_command(label="Set selection 1", command=set_selection_1)
menu.add_command(label="Set selection 2", command=set_selection_2)
menu.add_command(label="%s" %popup, command=set_selection_2)

现在,我得到的只是功能弹出地址。 如果我尝试popup.a,我得到一个错误,函数没有属性'a'。我如何克服这一点并获得'a'中的任何内容作为菜单标签打印?

2 个答案:

答案 0 :(得分:0)

如果要更改菜单上的文本,则必须使用entryconfig方法。例如,要更改您要执行的第一个项目的文本:

menu.entryconfig(0, label=a)

答案 1 :(得分:0)

popup之类的回调方法不应该返回任何内容。相反,你应该操作里面的 {/ 1>}。

另外,正如Brian建议的那样,您可能更愿意修改菜单中的现有条目,而不是每次单击按钮时添加新条目。在这种情况下,在函数外部创建条目(就像您现在一样),但使用一些占位符作为标签。

menu