Seite 1 von 1

Uhrzeit im Label aktualisieren

Verfasst: Mittwoch 5. Mai 2004, 10:58
von Mawilo
Hallo,

wie bringe ich die Uhrzeit in einem Label zum "Laufen"?

Bei meinem Aufruf wird immer nur die Aufrufzeit angezeigt. :(

Code: Alles auswählen

lt = time.localtime()                                            
jahr,monat,tag,stunde,minute,sekunde = lt[0:6]
zeit = "%02i:%02i:%02i Uhr" % (stunde, minute, sekunde)

lbtime=Label(frAb,text=zeit)
lbtime.pack(expand=1,anchor=E,side=TOP)
Stephan

Verfasst: Mittwoch 5. Mai 2004, 11:21
von Christopy_ohne_login
Habs noch nicht benutzt, aber Timer dürft die gesuchte Funktionalität beinhalten.

Verfasst: Mittwoch 5. Mai 2004, 11:27
von Christopy
Christopy_ohne_login hat geschrieben:Habs noch nicht benutzt, aber Timer dürft die gesuchte Funktionalität beinhalten.
Ne. Timer ruft die Funktion nur zeitverzögert auf. Aber bei den Threads ist man trotzdem auf der richtigen Spur...

Verfasst: Mittwoch 5. Mai 2004, 11:53
von Mawilo
Hallo Leute,

Das mit den Thread war voll gut. Dadurch habe ich die Antwort in einem Buch (von Michael Weigend) :idea: gefunden :D
Das is ne voll funzende Digitaluhr:

Code: Alles auswählen

from time import *
from Tkinter import *
import thread


class Uhr:
    def __init__(self):
        self.fenster = Tk()
        self.zeit = StringVar()
        self.anzeige = Label(self.fenster,
                             textvariable=self.zeit,
                             font=("Arial",20))
        self.anzeige.pack()
        thread.start_new_thread(self.aktualisieren, ())
        self.fenster.mainloop()

    def aktualisieren(self):
        while True:
            self.zeit.set(strftime("%X"))
            sleep(1)

uhr = Uhr()
Stephan

Verfasst: Mittwoch 5. Mai 2004, 12:01
von Christopy
Jo. Ansonsten hab ich hier noch was gefunden.

Verfasst: Mittwoch 5. Mai 2004, 18:21
von DER Olf
so ein zufall....
das wollte ich auchmal fragen, aber das programm hab ich dann nich mehr weitergeproggt...:)

Verfasst: Donnerstag 6. Mai 2004, 13:52
von Pythino
Geht es auch irgendwie, dass man diese Uhr unsichtbar macht?
Einfach nur das Tk-Fenster sparen, die Uhrzeit aber dennoch ausgeben?

Verfasst: Donnerstag 6. Mai 2004, 18:03
von Dookie
Hi Pythino,

wie meinst Du das?
Unsichtbar ausgeben?


Gruß

Dookie

Verfasst: Donnerstag 6. Mai 2004, 18:15
von lionking
hi

ich glaub pythino meint die uhrzeit auf transparentem hintergrund, also ohne fenster?!

würde mich auch mal interresieren wie man sowas macht...

Verfasst: Freitag 7. Mai 2004, 18:11
von DER Olf
hm....ich denke mal mit Tkinter GAR NICHT: eventuell mit den Pmw, mit der CLX für C++ / Delphi geht es :lol: :lol:

mfg

Olf

Verfasst: Montag 10. Mai 2004, 13:45
von Pythino
Ich meine, dass diese Uhr nur im Hintergrund existiert, aber nicht als Fenster angezeigt wird. Allerdings halte ich das für unmöglich...

Verfasst: Montag 10. Mai 2004, 14:00
von Christopy
@Pythino
Möglich ist es schon (einfach die Ausgabe und das Fenster weglassen), aber sinnvoll ist es eigentlich nicht. Was willst du mit einer Uhr die keiner sehen kann? Wenn Du irgendeine Zeit messen willst, ist es besser zwei Systemzeiten voneinander zu subtrahieren...

Um nur die Uhr zu zeichnen müsste man eine Fenster mit transparentem Hintergrund erzeugen. Afaik geht das weder mit TKinter noch mit wxWidgets. Unter Windows müsste man also direkt ein Fenster erstellen (hab ich aber noch nie gemacht...).

Verfasst: Montag 10. Mai 2004, 18:02
von Pythino
Hi Christopy,
die Uhr soll nicht gesehen werden, weil ich um eine bestimmte Uhrzeit eine Funktion ausführen will, sei es das Öffnen eines Fensters, oder was auch immer.
Ich habe es schon so versucht wie du es sagst, aber geklappt hat es leider noch nicht :?

Verfasst: Montag 10. Mai 2004, 21:20
von Christopy
Hallo Pythino
Verstehe.
Das könntest Du tatsächlich mit Timer machen.

Verfasst: Dienstag 11. Mai 2004, 15:06
von Pythino
Danke, allerdings ist dies nicht genau das, was ich suche.
Dieser Timer zählt ja nur einen Countdown, ich hätte aber gerne eine Uhrzeitausgabe.

Entweder stehe ich gerade total auf dem Schlauch, oder ich bin einfach zu doof:

Code: Alles auswählen

t = Timer(30.0, hello)
t.start() # after 30 seconds, "hello, world" will be printed
Timer ist nicht definiert, obwohl ich
timer und sicherheitshalber thread importiert habe :?

Verfasst: Dienstag 11. Mai 2004, 15:14
von Christopy

Code: Alles auswählen

import threading 
Ansonsten kannst Du doch ein wenig mit der Uhrzeit rumrechnen. Du bestimmst einfach die Differenz zwischen der aktuellen Uhrzeit und der Uhrzeit zu der die Funktion ausgeführt werden soll und übergibts das als Variable an Timer.


(btw mit wxWidget kann man unter Windows doch transparente Fenster erzeugen...)

Verfasst: Dienstag 11. Mai 2004, 15:58
von Pythino
import threading funktioniert nicht, dafür aber from threading import*
:?
Und nun habe ich das Problem, dass die Konsole "abschmiert" beim Ausführen der eigentlichen Funktion :x