I got it working now with these changes. I done away with the after_cancel and just used the timer itself.
#! /usr/bin/env python3 from tkinter import * from tkinter import ttk class Picture: def __init__(self, parent): self.parent = parent img = PhotoImage(file='images/img1.png') style = ttk.Style() style.configure('My.TLabel',padding=.25, borderwidth=5, relief='groove') self.label = ttk.Label(self.parent, style='My.TLabel') self.label['image'] = img img.image = img self.label.pack(pady=5) btn = Button(self.parent, command=self.update, text='Test').pack(side='bottom', pady=10) self.lab = Label(self.parent) self.lab['text'] = None self.lab.pack(expand=True, fill='x') def update(self): img = PhotoImage(file='images/img2.png') self.label['image'] = img img.image = img self.i = 8 self.timer() def display(self): img = PhotoImage(file='images/img1.png') self.label['image'] = img img.image = img self.lab['text'] = None def run_timer(self): if self.i >= 0: self.i -= 1 def timer(self): self.run_timer() if self.i >= 0: self.myvar = self.lab.after(1000, self.timer) self.lab['text'] = f'Resetting in {self.i}' self.lab['bg'] = 'burlywood' self.lab['fg'] = 'brown' self.lab['font'] = 'serif 10 normal' else: self.myvar = None self.lab['text'] = '' self.lab['bg'] = 'grey86' self.display() def main(): root = Tk() Picture(root) root.mainloop() main()
I welcome all feedback.
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags
The only dumb question, is one that doesn't get asked.
My Github
How to post code using bbtags