May-24-2023, 06:09 PM
I have one more example. Doesn't use the button to update. uses after. Sometimes pulls the same bin multiple times in the comparison list though.
So instead of three red labels, will get only one or two.
So instead of three red labels, will get only one or two.
import tkinter as tk from random import choices aList = ["Bin 1", "Bin 2", "Bin 3", "Bin 4", "Bin 5","Bin 6", "Bin 7", "Bin 8", "Bin 9", "Bin 10", "Bin 11", "Bin 12", "Bin 13", "Bin 14", "Bin 15"] def checker(root, labels): bins = choices(aList, k=3) print(bins) for label in labels: label['bg'] = 'red' if label['text'] in bins else 'gray86' root.after(1000, lambda: checker(root, labels)) root = tk.Tk() root['padx'] = 5 root['pady'] = 5 root.title('Feed Bins') root.columnconfigure(0, weight=1) root.rowconfigure(0, weight=1) frame = tk.Frame(root) frame['highlightbackground'] = 'black' frame['highlightcolor'] = 'black' frame['highlightthickness'] = 1 frame.grid(column=0, row=0, sticky='news', padx=5, pady=5) _labels = [] i = 0 for x in range(5): frame.grid_rowconfigure(x, weight=3, uniform='rows') for y in range(3): frame.grid_columnconfigure(y, weight=3, uniform='cols') _labels.append(tk.Label(frame, text=aList[x+(y*5)], relief='raised', font=(None, 16, 'bold'))) _labels[i]['bg'] = 'gray86' _labels[i].grid(column=y, row=x, sticky='news', padx=5, pady=5) i+=1 btn = tk.Button(root, text='Button', font=(None, 14, 'bold')) btn.grid(column=0, row=1, pady=8) root.after(1000, lambda: checker(root, _labels)) root.mainloop()
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