widgets w3schools standard libreria library instalar example python tkinter tk

w3schools - tkinter python example



¿Cómo saber si una ventana con un título dado ya está abierta en Tk? (2)

Creo que quieres:

if ''normal'' != root.state(): tkMessageBox.showinfo("Key you!", " ".join(sys.argv[1:]))

He escrito un pequeño script de Python que solo muestra un cuadro de mensaje que contiene el texto pasado en la línea de comando. Quiero mostrarlo solo cuando la ventana -resultado de una llamada anterior- no esté abierta.

from Tkinter import * import tkMessageBox root = Tk() root.withdraw() # TODO not if a window with this title exists tkMessageBox.showinfo("Key you!", " ".join(sys.argv[1:]))

¿Alguna idea de cómo verificar eso?


La respuesta anterior funciona de acuerdo con el código que ha proporcionado. Usted dice que no funciona porque el contestador cumple con la regla "sois bête et discipliné" porque no agregó root.mainloop() a su código ya que su pregunta tampoco.

Al agregar la línea posterior, por alguna razón causada por el bucle de evento, 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 este código; de lo contrario, la sesión de la Terminal se cerrará. Para eludir esta incomodidad, tendrá que restablecer el estado de la ventana utilizando root.state("normal") que hará que el cuadro de mensaje desaparezca como si se hubiera hecho clic en el botón Aceptar o root.iconify() través del cual puede detener la sesión de la Terminal para que cuelgue haciendo clic derecho en el icono de tkinter que aparece en la barra de tareas de su sistema operativo.