text neu laden??? [gelöst]

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

text neu laden??? [gelöst]

Beitragvon tjuXx » Freitag 4. Juli 2008, 15:48

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

Re: text neu laden???

Beitragvon numerix » Freitag 4. Juli 2008, 16:14

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:

Beitragvon tjuXx » Freitag 4. Juli 2008, 16:29

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: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Freitag 4. Juli 2008, 17:11

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: 513
Registriert: Dienstag 13. Februar 2007, 21:57

Beitragvon kaytec » Freitag 4. Juli 2008, 22:22

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:

Beitragvon tjuXx » Donnerstag 10. Juli 2008, 18:45

nochmals vielen Dank!

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder