簡體   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