我想在选择下创建文本,在变量'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'中的任何内容作为菜单标签打印?
答案 0 :(得分:0)
如果要更改菜单上的文本,则必须使用entryconfig
方法。例如,要更改您要执行的第一个项目的文本:
menu.entryconfig(0, label=a)
答案 1 :(得分:0)
popup
之类的回调方法不应该返回任何内容。相反,你应该操作里面的 {/ 1>}。
另外,正如Brian建议的那样,您可能更愿意修改菜单中的现有条目,而不是每次单击按钮时添加新条目。在这种情况下,在函数外部创建条目(就像您现在一样),但使用一些占位符作为标签。
menu