消息框似乎正在禁用主 GUI

问题描述

我正在构建一个程序,该程序在打开时会从包中的 txt 文件提取“公司信息”。打开程序时,代码检查公司信息是否完整:

1 如果 100% 完成 - 没问题,程序正常打开

2 如果有些但不是全部完整 - 程序通知用户某些信息是 缺少,询问用户是否要立即完成信息:

  • 如果没有 - 程序照常进行
  • 如果是 - 客户被带到公司信息表

3 如果没有公司信息 - 就像用户第一次打开 程序,用户将直接进入公司信息表,他们是 给出一个提示“看来你是一个新客户。在我们继续之前,我们 需要一些基本的细节"

它在情况 1 和 2 中正常工作,但在情况 3 中消息框按预期弹出我们,但是当您关闭它时,主 GUI 表单公司信息表单被禁用。在玩弄之后,我发现如果你最小化并打开表单,它就可以完美运行 - 但那是废话。 如果我注释掉消息框 - 表单可以完美运行 - 那么它的消息框就会把一切都搞砸了。

问题代码的摘录以及表单和消息框的图像(附加为链接

# Save Button
SaveButton = tk.Button(SetUpWindow,text="Save",font=('​Helvetica',12,'normal'),height=1,width=15,command=SaveClientData)
SaveButton.place(x=FormWidth - 90,y=FormHeight - 30,anchor="center")

# If first time entry just quickly inform client
Msg = "It seems you are a new client. Before we continue,we require some basic details"
if first_time_entry:
    tk.messageBox.showinfo(title="New Client",message=Msg)

SetUpWindow.mainloop()

Problem Form

解决方法

从以下帖子中获取答案:tkinter: No input possible after messagebox is called

您需要在显示消息框之前调用 root.wait_visibility() 或 root.update():

root.wait_visibility()  # or root.update()
messagebox.showwarning("Warning","Some Serious Warning.")