Frage

Sie wissen eine intelligente Art und Weise zu verstecken oder in irgendeiner anderen Art und Weise der Root-Fenster loszuwerden, die, geöffnet von Tk() erscheint? Ich möchte nur einen normalen Dialog verwenden.

Soll ich den Dialog überspringen und meine alle Komponenten im Hauptfenster setzen? Ist es möglich oder wünschenswert? Oder gibt es eine intelligentere Lösung?

War es hilfreich?

Lösung

Wahrscheinlich ist die überwiegende Mehrheit der von tk-basierten Anwendungen legen Sie alle Komponenten in den Standard-Root-Fenstern. Dies ist der bequemste Weg, es zu tun, da es bereits vorhanden ist. Die Auswahl der Standardfenster zu verbergen, und erstellen Sie Ihre eigenen ein völlig in Ordnung, was zu tun, auch wenn es nur ein kleines bisschen mehr Arbeit erfordert.

Ihre Frage zu beantworten, wie es zu verbergen, verwenden Sie die zurückziehen Methode der root-Fenster:

import Tkinter as tk
root = tk.Tk()
root.withdraw()

Wenn Sie das Fenster wieder sichtbar machen wollen, rufen Sie die deiconify macht (oder wm_deiconify) -Methode.

root.deiconify()

Wenn Sie mit dem Dialog fertig sind, können Sie das Root-Fenster zerstören zusammen mit allen anderen tkinter Widgets mit der zerstören Methode:

root.destroy()

Andere Tipps

Ich habe nicht getestet, da ich habe keine Python / Tkinter Umgebung, aber versuchen Sie dies.

In der reinen Tk gibt es eine Methode „wm“ genannt, die Fenster zu verwalten. Dort können Sie so etwas wie „wm zurückziehen .mywindow“ tun, wo ‚.mywindow‘ ein Toplevel ist.

In TkInter sollten Sie in der Lage sein, etwas zu tun, ähnlich wie:

root = Tkinter.Tk()
root.withdraw() # won't need this

Wenn Sie das Fenster wieder sichtbar machen wollen, rufen Sie die deiconify macht (oder wm_deiconify) -Methode.

root.deiconify()

Auf OSX, Iconify scheint besser zu funktionieren:

root = Tkinter.Tk()
root.iconify()

Wenn Sie eine seiner „Flash“ nicht dort wollen als das Fenster erstellt wird, verwenden Sie diese leichte Variation:

import Tkinter as tk
root = tk.Tk()
root.overrideredirect(1)
root.withdraw()
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top