[英]Tkinter message box pops up before other actions
我正在努力弄清楚如何让消息框在正确的时刻弹出。 它似乎总是在 window 更新以显示我想要的内容之前弹出。 这是一个例子; 我希望按钮的文本在消息框弹出之前更新为 3,但在我单击消息框上的“确定”后它总是会更新。
from tkinter import *
from tkinter import messagebox
win = Tk()
count = 0
def click():
global count
count += 1
btn.config(text=count)
if count == 3:
messagebox.showinfo('The count is 3')
btn = Button(text='', command=click)
btn.pack()
win.mainloop()
运行您的示例代码,我看到您描述的相同行为。 我可以通过在调用messagebox.showinfo()
win.update()
的调用来解决它。 下面的完整代码虽然我将count
从原始int
更改为IntVar
这对您的问题没有任何影响,但我只是想看看它是否会:
from tkinter import *
from tkinter import messagebox
def click():
count.set(value := count.get() + 1)
if value == 3:
win.update()
messagebox.showinfo(f"The count is {value}")
win = Tk()
count = IntVar(win, value=0)
Button(win, command=click, textvariable=count).pack()
win.mainloop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.