time.sleep() bei TkInter

Fragen zu Tkinter.
Antworten
Benutzeravatar
classic
User
Beiträge: 23
Registriert: Mittwoch 3. September 2008, 15:37
Wohnort: Erfurt bzw Lauchröden

Hallo alle zusammen,

ich hab folgendes sicher recht simples Problem. :x :x :x

Hier mein Cuellcode:

Code: Alles auswählen

import Tkinter as tk
import os
import time

k=os.getcwd()+os.sep+'ha.bat'
def ha(event):
    os.system('')
    
root=tk.Tk()
root.bind_all('<Button-1>',ha)
root.attributes('-alpha',0.1) #Transparenz
root.minsize(2000,2000)
root.attributes('-topmost',0) #Fenster immer im Vordergund
root.overrideredirect(1)
[b]time.sleep(20)[/b]
root.destroy()
root.mainloop()
Nun ist es so das das gesamte Fenster nun erst erstellt wird wenn die 20 Sekunden vorbei sind. Ich moechte aber, dass das Fenster erstellt wird und nach 20 sec. wieder geschlossen wird.

Koennte jemand von euch mir vielleicht sagen wie man sowas machen koennte???

Vielen dank schonmal im Vorraus

MfG
classic
Zuletzt geändert von classic am Montag 5. Januar 2009, 20:45, insgesamt 1-mal geändert.
Benutzeravatar
classic
User
Beiträge: 23
Registriert: Mittwoch 3. September 2008, 15:37
Wohnort: Erfurt bzw Lauchröden

Ok das tut mir jetzt leid ichhab zuspät mitbekommen das ich das hier in die falsche Rubrik geschrieben habe.... :oops: :oops:

wäre also nett wenn mir auch jemand sagen könnte wie ich das ändern kann^^
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Das geht nur als Moderator, habe es mal für dich verschoben.

P.S. Es heißt übrigens Quelltext :)

Edit: Du kannst nicht einfach den Thread einfrieren (``sleep`` macht genau das). Du musst ein Event registrieren. Dazu hat Tk sicher eine Möglichkeit, wie genau der Befehl heißt weiß ich nicht; such mal im Forum nach ``after``, das fällt in die selbe Rubrik.
Zuletzt geändert von Leonidas am Montag 5. Januar 2009, 21:25, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

classic hat geschrieben:Koennte jemand von euch mir vielleicht sagen wie man sowas machen koennte???
Guck mal ganz oben auf dieser Seite:
http://infohost.nmt.edu/tcc/help/pubs/t ... ersal.html
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo classic

Hier noch dein Beispiel mit der Widget.Methode 'after':

Code: Alles auswählen

import Tkinter as tk
import os
import time

k=os.getcwd()+os.sep+'ha.bat'
def ha(event):
    os.system('')

def time_delay():
    root.destroy()

root=tk.Tk()
root.bind_all('<Button-1>',ha)
root.attributes('-alpha',0.1) #Transparenz
root.minsize(2000,2000)
root.attributes('-topmost',0) #Fenster immer im Vordergund
root.overrideredirect(1)

DELAY_TIME = 2000 # Millisekunden
root.after(DELAY_TIME, time_delay)

root.mainloop()
Gruss wuf :wink:
Take it easy Mates!
Antworten