One more example
#! /usr/bin/env python3 import tkinter as tk from functools import partial class Window: def __init__(self, parent): parent.columnconfigure(0, weight=1) my_list = ['orange', 'red', 'blue', 'pink', 'green', 'yellow', 'gold', 'silver', 'violet', 'magenta', 'gray', 'burlywood', 'tan', 'brown', 'slateblue', 'snow', 'dodgerblue', 'royalblue', 'steelblue', 'mediumblue', 'darkblue', 'limegreen', 'cornflowerblue', 'wheat', 'powderblue', 'purple', 'cyan', 'forestgreen', 'tomato', 'cornsilk'] self.fg_list = ['blue', 'mediumblue', 'darkblue', 'purple'] self.label = tk.Label(parent, text=' ', pady=5) self.label['borderwidth'] = 1 self.label['highlightthickness'] = 1 self.label['highlightcolor'] = 'black' self.label['highlightbackground'] = 'black' self.label['bg'] = 'orange' self.label.grid(column=0, row=0, columnspan=5,sticky='news', pady=5) var = tk.StringVar() var.set('orange') col = 0 row = 1 for option in my_list: radio = tk.Radiobutton(parent, bg=option, bd=1, highlightbackground='black', anchor='w') if option in self.fg_list: radio['fg'] = 'snow' else: radio['fg'] = 'black' radio['variable'] = var radio['value'] = option radio['text'] = option.title() radio['tristatevalue'] = option radio['command'] = partial(self.show, var) radio.grid(column=col, row=row, sticky='new', padx=1, pady=1) radio.grid_columnconfigure(col, weight=3, uniform='columns') if col >= 4: col = 0 row += 1 else: col += 1 self.show('Orange') def show(self, var): if type(var) == str: self.label['text'] = var.title() self.label['bg'] = var else: self.label['text'] = var.get().title() self.label['bg'] = var.get() if var.get() in self.fg_list: self.label['fg'] = 'snow' else: self.label['fg'] = 'black' def main(): root = tk.Tk() root['padx'] = 5 root['pady'] = 5 Window(root) root.mainloop() if __name__ == '__main__': 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