Using the following code, the messagebox will not close, leaving it on top of all other open windows: from tkinter import * rootWin = Tk() messagebox.showinfo("Title", "foo") If the root window contains a widget (Label, Entry, Button, etc.), the dialog can close. Similar results have been obtained with filedialog. OS: Mac OS X 10.10.5 Python IDE: IDLE 3.4.4 tkinter.TkVersion: 8.5 tkinter.TclVersion: 8.5 ActiveTcl: 8.6.4
Try adding 'parent=rootWin' to the messagebox call. Otherwise, I expect that this is, as far as cause, a duplicate of #2637, in which case my comment https://bugs.python.org/issue26376#msg260544 applies.
Updated script with the adding 'parent-Rootwin' to messagebox() arguments. The issue persists. Following advice in #26376: Ran script on Terminal. The issue disappears, and everything works normally. Running through IDLE, the issue returns.
Is this problem still present? I've used the following script to test: import tkinter from tkinter import messagebox root = tkinter.Tk() box = messagebox.showinfo("Title", "A Message") # -- EOF --- With this script I can close the message box without problems (by clicking on the OK button). Both when running from the command-line and when running from IDLE. Python 3.9, installer from python.org.
Looking at #26376 again, I think Ned's identified Sam's problem. "Also note that installing ActiveTcl 8.6.x has no effect if the tkinter in use was linked with an 8.5 version of Tcl/Tk, as the one you are using apparently was. Make sure you have installed the latest version of ActiveTcl 8.5.x and try again." Sam's tk 8.5 would have been Apple's buggy 8.5.9 (or earlier). I should have asked for the 8.y.z version listed in About IDLE. In any case, I also verified no problem in current Python-Tk-IDLE.