text neu laden??? [gelöst]

Fragen zu Tkinter.
Antworten
Benutzeravatar
tjuXx
User
Beiträge: 67
Registriert: Freitag 21. September 2007, 09:25
Wohnort: Bremerhaven
Kontaktdaten:

Hallo,

ich schreibe gerade für meine Freundin ein Countdown-Programm. Welches die Zeit ausgibt wann ich sie besuchen komme.

Habe es soweit schon hinbekommen.
Hätte es aber noch gerne so, dass sich die Zeit automatisch aktualisiert, solange das Fenster geöffnet ist.

Code: Alles auswählen

import time,Tkinter

def leftTime():
	totalTime   = int(1220896200 - time.time())
	ltime       = [0,0,0,0]
	ltime[0]    = totalTime/86400
	lsec        = totalTime%86400
	ltime[1]    = (lsec)/3600
	lsec        = lsec%3600
	ltime[2]    = (lsec)/60
	ltime[3]    = (lsec)%60
	return ltime


root = Tkinter.Tk()
root.title("Countdown")
ltime = leftTime()
vtext = "  Ich komme in %d Tagen, %d Stunden, %d Minuten und %d Sekunden.  "%(ltime[0],ltime[1],ltime[2],ltime[3])
w = Tkinter.Label(root,text=vtext)
w.pack()
root.mainloop()
Ich hoffe ihr könnt mir dabei helfen....

LG TjUXx
Zuletzt geändert von tjuXx am Donnerstag 10. Juli 2008, 18:46, insgesamt 1-mal geändert.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

tjuXx hat geschrieben:ich schreibe gerade für meine Freundin ein Countdown-Programm. Welches die Zeit ausgibt wann ich sie besuchen komme.
Das ist ja süß! :)
tjuXx hat geschrieben:Habe es soweit schon hinbekommen.
Hätte es aber noch gerne so, dass sich die Zeit automatisch aktualisiert, solange das Fenster geöffnet ist.
So z.B.:

Code: Alles auswählen

import time,Tkinter

def leftTime():
    totalTime   = int(1220896200 - time.time())
    ltime       = [0,0,0,0]
    ltime[0]    = totalTime/86400
    lsec        = totalTime%86400
    ltime[1]    = (lsec)/3600
    lsec        = lsec%3600
    ltime[2]    = (lsec)/60
    ltime[3]    = (lsec)%60
    return ltime

def refresh_time():
    ltime = leftTime()
    vtext = "  Ich komme in %d Tagen, %d Stunden, %d Minuten und %d Sekunden.  "%(ltime[0],ltime[1],ltime[2],ltime[3])
    label.config(text=vtext)
    root.after(1000,refresh_time)

root = Tkinter.Tk()
root.title("Countdown")
label = Tkinter.Label(root)
label.pack()
refresh_time()
root.mainloop()
Zu deinem Code wäre noch zu sagen, dass die Berechnung der Restzeit nicht sehr elegant gelöst ist. Schau dir doch mal das Modul datetime an.
Benutzeravatar
tjuXx
User
Beiträge: 67
Registriert: Freitag 21. September 2007, 09:25
Wohnort: Bremerhaven
Kontaktdaten:

vielen Dank für die schnelle Hilfe.

Ich habe noch eine weitere Frage.

Wenn ich in Windows das python file öffne, öffnen sich zwei Fenster ("python.exe" und "Counter").
Ist es möglich, dass nur das Tkinter Window ("Counter") angezeigt wird???
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Code: Alles auswählen

"  Ich komme in %d Tagen, %d Stunden, %d Minuten und %d Sekunden.  "%(ltime[0],ltime[1],ltime[2],ltime[3]) 
kann man auch besser schreiben als:

Code: Alles auswählen

"  Ich komme in %d Tagen, %d Stunden, %d Minuten und %d Sekunden.  "% tuple(ltime)
Die Klammern um "lsec" bei der Berechnung von "ltime[2]" und "ltime[3]" sind auch nicht nötig.
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

Hallo tjuXx !

Aendere die Endung auf "*.pyw".

gruss frank
Benutzeravatar
tjuXx
User
Beiträge: 67
Registriert: Freitag 21. September 2007, 09:25
Wohnort: Bremerhaven
Kontaktdaten:

nochmals vielen Dank!
Antworten