У меня проблемы с виджетом Tkinter Menu (без кнопки меню), из-за которого обратный вызов, кажется, работает не по порядку. Вот очень минимальный пример:
# 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 (вместо Меню) и др.
Любой совет будет оценен.