繁体   English   中英

Tkinter 在其他动作之前弹出消息框

[英]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()

如上所述在第 10 行的messagebox.showinfo上打印的正确方法。

messagebox.showinfo(f"The count is", f"count {value}")

Output:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM