Hallo,
im Rahmen eines im Hintergrund werkelnden Sicherheitsmechanismuss poppen immer wieder seitlich Fenster auf die entweder mit Klick auf Button "OK" oder "erledigt" geschlossen werden, teilweise aber nur flüchtige Okay-Meldungen sind und sich selbst nach ca. 1/2 Sekunde beenden sollen.
Wie realisiere ich diese sich selbst schließen? - Habe schon in diesem Forum gesucht, time.sleep(.5) wartet 1/2 Sekunde, aber es soll ja erst das Fenster angezeigt werden, DANN erst die halbe Sekunde ablaufen.
Gruss
Eckard
Fenster soll nach 1/2 Sek selbst schliessen
@egerlach: Schau Dir mal die `after()`-Methode auf Widgets an.
Edit: Noch als Anmerkung: Solche Fenster halte ich für ziemlich unbrauchbar bis störend. Wenn man mal länger nicht hinschaut, bekommt man nichts mit, und wenn man gerade auf OK klicken will, wenn das Fenster automatisch verschwindet, klickt man auf sonstwas in dem Fenster darunter. Das kann böse Überraschungen zur Folge haben.
Edit: Noch als Anmerkung: Solche Fenster halte ich für ziemlich unbrauchbar bis störend. Wenn man mal länger nicht hinschaut, bekommt man nichts mit, und wenn man gerade auf OK klicken will, wenn das Fenster automatisch verschwindet, klickt man auf sonstwas in dem Fenster darunter. Das kann böse Überraschungen zur Folge haben.
hier ein Bsp. für die after-Methode
Code: Alles auswählen
import Tkinter as Tk
win=Tk.Tk()
win.minsize(200,200)
win.after(1500, win.destroy)
Besten Dank für den Hinweis, ich hatte alle möglichen Varianten getestet, aber exakt Deine nicht. Nach vielen Versuchen mit lambda, command=, print_ok(), ... weiss ich auch jetzt auch wie eine Funktion in after() aufrufbar ist: nämlich ohne lambda, command, oder ():
mit quit anstelle von destroy gehts auch, sieht sanfter aus
500 sind Millisekunden, hier 1/2 Sekunde.
Danke an alle Mitdenker, Eckard
Code: Alles auswählen
def print_ok():
print "ok"
root.quit()
[...]
root.after(500, print_ok)
500 sind Millisekunden, hier 1/2 Sekunde.
Danke an alle Mitdenker, Eckard