我发现如果我使用root.after()
重复功能,但是再单击菜单或启动对话框,它将停止重复,直到对话框或菜单关闭。
这不是我想要的行为 - 即使菜单或对话框打开,我希望该功能不断重复。
有人可以告诉我这是否是预期的行为,如果有,是否有办法阻止它?
示例代码:
def repeater():
print("repeating")
root.after(500, repeater)
root.after(500, repeater)
root.showerror("Error", "Error")
--- --- EDIT
抱歉,无法访问开发环境,因此无法提供完整的代码示例 这在MAC OSX上,在Python 3.6中
这是一个完整的代码示例:
from tkinter import Tk, Button, messagebox
def msg():
print("repeating")
root.after(500, msg)
def pop():
messagebox.showinfo( "Block", "Blocking...")
root = Tk()
Button(root, text="Pop", command=pop).pack()
root.after(500, msg)
root.mainloop()
每当我单击按钮或单击任何OSX菜单时,它都会停止打印消息...
---编辑2 --- 我已经能够访问Raspberry Pi了 - 并在那里测试这段代码。它工作正常,popUp不会阻止消息被打印出来。因此,它开始看起来像Mac OSX问题 - 特别是El Capitan,10.11.6
从原始帖子的评论中看来,这段代码在Windows上运行良好。
其他人可以在OSX上测试它,确认它有问题吗?