TkInter Material Grundlagen Templates Ereignisse Button Entry Label Canvas Welt-Bild-Transformation Text Dialoge Optionmenu Listbox Fenster Toplevel Timer Threads Pack Drag&Drop
Pfad: Startseite / Fächer / Informatik / Python / TkInter / Label
Autor: mk
09.03.2010 14:43:17
767
Label

BlinkLabel

import tkinter

class BlinkLabel(tkinter.Label):
    def __init__(self, master, interval = 500, enableblink = True, **config):
        # , **config zu Testzwecken mal weglassen, was ist der Sinn?
        tkinter.Label.__init__(self, master = master, **config)
        self.interval = interval
        self.enableBlink = enableblink
        self.visible = True
        self.farbe = self['foreground']                  # lesender Zugriff auf Attribut über Dictionary
        self.after(self.interval, self.updateBlink)

    def updateBlink(self):
        if self.enableBlink:
            if self.visible:
                self.farbe = self['foreground']          # lesender Zugriff auf Attribut über Dictionary
                self['foreground'] = self['background']
                self.visible = False
            else:
                self['foreground'] = self.farbe          # schreibender Zugriff auf Attribut über Dictionary
                self.visible = True
        else:
            self['foreground'] = self.farbe
            self.visible = True
        self.after(self.interval, self.updateBlink)


if __name__ == '__main__':
    f = tkinter.Tk()
    f.geometry('100x100')
    l = BlinkLabel(f, text = '59', font = ('Helvetica',30))
    l.place(x = 30, y = 10)
    def ein():
        l.enableBlink = True
    bEin = tkinter.Button(f, text = 'ein', command = ein)
    bEin.place(x = 20, y = 70)
    def aus():
        l.enableBlink = False
    bAus = tkinter.Button(f, text = 'aus', command = aus)
    bAus.place(x = 50, y = 70)
    f.mainloop()

Versuche zur Argumentübergabe

Versuche zur Argumentübergabe

Links