Seite 1 von 1
GUI hängt nach Threadende
Verfasst: Dienstag 11. Juli 2006, 22:25
von N17R0
Hallo,
folgendes problem, also eigentliche aufgabe ist, nen fenster nach ner bestimmten zeit langsam auszublenden, aber mein problem liegt schon viel weiter früher, darum auch nur nen abgespeckter Quellcode:
Code: Alles auswählen
from Tkinter import *
import time
import thread
root=Tk()
def run():
time.sleep(0.01)
root.destroy()
thread.start_new_thread(run, ())
root.mainloop()
Hier also das einfache Schließen des Fensters nach der Zeit x. Dummer Weise schließt er das Fenster bei mir nicht, sondern hängt sich fest. Keine ahnung, woran des liegt, bestimmt wieder nur ne Kleinigkeit.
Verfasst: Mittwoch 12. Juli 2006, 05:06
von mawe
Hi!
Also bei mir funktionierts (Ubuntu Linux).
Gruß, mawe
Verfasst: Mittwoch 12. Juli 2006, 05:36
von N17R0

wie unfair -.-'
nagut, danke für deine Hilfe, dann wirds wohl irgendwo am meinem PC/Windows liegen
//edit:
*grmlz* ich hab das ganze jetzt nochmal auf nem anderen PC ausprobiert (auch WinXP) und da funktionierts genauso wenig. Könnte das an der Beta2 von python liegen? Zu Hause hab ich's allerdings auch mit der 1.4.3 probiert und das gleiche Ergebnis erhalten.
Hat jemand vielleicht ne Lösung?
Verfasst: Mittwoch 12. Juli 2006, 07:43
von BlackJack
Die Wartezeit ist verdammt kurz. Kann es sein, das bei Dir ``root.destroy()`` aufgerufen wird, bevor die Hauptschleife von Tk richtig läuft!?
Bei mir funktioniert unter Linux übrigens auch.
Verfasst: Mittwoch 12. Juli 2006, 08:08
von N17R0
hmm, glaube nicht, weil können auch 5 sekunden sein oder 10 minuten, bis die zeit vorbei is, is alles gut und dann is schluss -.-'
//edit:
ok, hab's jetzt mit root.after() gemacht, da funktionierts...
Verfasst: Donnerstag 13. Juli 2006, 10:14
von Hannes-Spz
kannst du das kleine snippet mal kurz zeigen?
ich habe auch mal ein solches problem gehabt und weiß noch immer nicht, wie ich es lösen soll..
lg u danke im voraus
hannes
Verfasst: Donnerstag 13. Juli 2006, 10:46
von N17R0
Code: Alles auswählen
from Tkinter import *
import time
root=Tk()
def run():
for i in range(20):
root.wm_attributes("-alpha", (1.0-(i/20.0))) ##nur unter python 2.5b
root.update()
time.sleep(0.1)
root.destroy()
root.after(2000, run) ## run() wird 2 sekunden nach erstellem von root ausgeführt
root.mainloop()
Verfasst: Donnerstag 13. Juli 2006, 11:21
von jAN
Ein Fenster wird bei einer alphatransparenz von 0 vom windowmanager ignoriert. (Zumindest bei mir) könnt das ein Fehler sein?