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
Links