我在使用 Tkinter 时遇到问题Menu小部件(没有菜单按钮),因此回调似乎不按顺序运行。这里有一个very最小的例子:
# Python 3.6.5. Windows 7 x64.
from tkinter import *
root = Tk()
popup = Menu(root, tearoff=0)
popup.add_command(label="test", command=lambda: print("clicked 'test'"))
print("Before post")
popup.post(200,200) # Expecting print output from this (when clicked)
print("After post")
root.mainloop()
print("end of program")
预期输出:
Before post
clicked 'test'
After post
end of program
实际输出:
Before post
After post
clicked 'test' <--- Shouldn't this appear BEFORE previous line?
end of program
我尝试了很多事情,但没有成功,例如:popup.wait_window()、popup.update_idletasks()、popup.grab_release()、popup.unpost()、popup.destroy()、tk_popup(而不是菜单), ETC。
任何意见,将不胜感激。
单击“测试”
不,不应该。该帖子仅使菜单出现,它不会等待用户从菜单中选择某些内容。这不是 tkinter 菜单的设计原理。
如果您需要代码暂停直到用户做出选择,您可能需要等待一个变量,然后确保所有菜单项都设置该变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)