La respuesta anterior funciona de acuerdo a un código que ha proporcionado. Usted dice que no funciona porque el respondedor cumple con la regla "sois bête et discipliné" en el sentido de que no agregó root.mainloop()
a su código ya que su pregunta tampoco.
Mediante la adición de la línea más tarde, por alguna razón causada por el bucle de eventos, debe probar la cadena exacta "retirada" de la siguiente manera:
import tkinter as tk
from tkinter import messagebox
import sys
root = tk.Tk()
root.withdraw()
if 'withdrawn' != root.state():
messagebox.showinfo("Key you!", sys.argv[1:])
root.mainloop()
Nota: no ejecute el código de lo contrario su sesión de terminal colgar. Para evitar esta incomodidad, tendrá que restablecer el estado de la ventana usando root.state("normal")
, lo que hará que desaparezca el cuadro de mensaje como si se hubiera hecho clic en el botón Aceptar o root.iconify()
, a través del cual puede detener la sesión de la Terminal para colgar haciendo clic en el icono de tkinter que aparece en la barra de tareas del sistema operativo.
He intentado esto, no funciona, la nueva ventana se abre de todos modos. Quizás no estaba lo suficientemente claro: dos intérpretes de Python se están ejecutando al mismo tiempo. Quiero que el segundo proceso salga cuando el otro se está ejecutando, es decir, cuando la ventana -o cualquier ventana con ese título- ya esté abierta. – Tibi