Die bisherige Antwort arbeitet entsprechend dem Code, den Sie zur Verfügung gestellt haben. Sie sagen, dass es nicht funktioniert, weil der Beantworter die Regel "sois bête et discipliné" erfüllt, indem er seinem Code root.mainloop()
nicht hinzugefügt hat, da dies auch in Ihrer Frage nicht der Fall ist.
durch die spätere Zeile hinzufügen, aus irgendeinem Grund von der Ereignisschleife verursacht, sollten Sie die exakte Zeichenfolge testen „zurückgezogen“ wie folgt:
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()
Hinweis: laufen Sie diesen Code nicht anders Terminalsitzung wird auflegen. Um dieses Unbehagen zu umgehen, müssen Sie den Fensterstatus entweder mit root.state("normal")
zurücksetzen, was dazu führt, dass das Meldungsfeld verschwindet, als ob ein Klick auf die OK-Schaltfläche aufgetreten wäre, oder root.iconify()
, durch den Sie die Terminal-Sitzung beenden können, um richtig aufzulegen Klicken Sie auf das tkinter-Symbol, das auf Ihrer OS-Taskleiste angezeigt wird.
Ich habe es versucht, es funktioniert nicht, das neue Fenster öffnet sich trotzdem. Vielleicht war ich nicht klar genug: Zwei Python-Interpreter laufen zur gleichen Zeit. Ich möchte, dass der zweite Prozess beendet wird, wenn der andere ausgeführt wird, d. H. Wenn das Fenster - oder ein Fenster mit diesem Titel - bereits geöffnet ist. – Tibi