почему message.showinfo () открывает 2 windows вместо одного? - PullRequest
0 голосов
/ 18 июня 2020

Похоже, если вы наберете:

from tkinter import *

messagebox.showinfo("App", "test")

Будет открыто 2 windows вместо одного. Зачем? И как это исправить?

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Поведение, которое вы сказали, является нормальным в зависимости от вашего обновленного кода. Если вы не хотите, чтобы отображалось окно root, создайте его вручную и скройте перед вызовом messagebox.showinfo(), а затем уничтожьте окно root после закрытия showinfo():

from tkinter import *
from tkinter import messagebox

root = Tk()
root.withdraw()
messagebox.showinfo("App", "test")
root.destroy()
0 голосов
/ 18 июня 2020

Невозможно уничтожить его, зная только заголовок , хотя я полагаю, вы могли бы перебирать все известные виджеты в поисках одного с заданным заголовком.

Что вы хотите сделать вместо этого нужно сохранить ссылку на окно, а затем вызвать destroy() по ссылке. В следующем примере root - это ссылка на окно, созданное Tk().

import tkinter as tk
root = tk.Tk()

Позже вы можете уничтожить это окно следующим образом:

root.destroy()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...