This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Tkinter dialogs will not close if root window not packed.
Type: behavior Stage: resolved
Components: macOS, Tkinter Versions: Python 3.4
process
Status: closed Resolution: duplicate
Dependencies: Superseder: Tkinter root window won't close if packed.
View: 26376
Assigned To: Nosy List: Sam Yeager, ned.deily, ronaldoussoren, terry.reedy
Priority: normal Keywords:

Created on 2016-02-17 15:07 by Sam Yeager, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
1 Before closing window and box.png Sam Yeager, 2016-02-19 18:59
2 After closing window and box.png Sam Yeager, 2016-02-19 18:59
Messages (5)
msg260401 - (view) Author: Sam Yeager (Sam Yeager) Date: 2016-02-17 15:07
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
msg260545 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2016-02-20 00:53
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.
msg260698 - (view) Author: Sam Yeager (Sam Yeager) Date: 2016-02-22 20:33
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.
msg380054 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2020-10-31 12:11
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.
msg380107 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2020-10-31 23:24
Looking at #26376 again, I think Ned's msg260413 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.
History
Date User Action Args
2022-04-11 14:58:27adminsetgithub: 70565
2020-10-31 23:24:05terry.reedysetstatus: open -> closed
superseder: Tkinter root window won't close if packed.
messages: + msg380107

resolution: duplicate
stage: resolved
2020-10-31 12:11:03ronaldoussorensetmessages: + msg380054
2016-02-22 20:33:50Sam Yeagersetmessages: + msg260698
2016-02-20 00:53:21terry.reedysetnosy: + terry.reedy
messages: + msg260545
components: - IDLE
2016-02-19 23:24:36Sam Yeagersettype: behavior
2016-02-19 18:59:16Sam Yeagersetfiles: + 2 After closing window and box.png
2016-02-19 18:59:02Sam Yeagersetfiles: + 1 Before closing window and box.png
2016-02-17 15:07:00Sam Yeagercreate