Python Forum
[Tkinter] Grid the radio buttons
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tkinter] Grid the radio buttons
#7
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


Reply


Messages In This Thread
Grid the radio buttons - by Joni_Engr - Nov-23-2021, 03:33 PM
RE: Grid the radio buttons - by DPaul - Nov-23-2021, 04:18 PM
RE: Grid the radio buttons - by BashBedlam - Nov-23-2021, 04:18 PM
RE: Grid the radio buttons - by deanhystad - Nov-23-2021, 04:26 PM
RE: Grid the radio buttons - by Joni_Engr - Nov-24-2021, 09:54 AM
RE: Grid the radio buttons - by menator01 - Nov-24-2021, 10:36 AM
RE: Grid the radio buttons - by menator01 - Nov-24-2021, 07:20 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  [Tkinter] Is there a way to determine if a radio button has been selected? TWB 5 4,977 Jan-31-2023, 09:44 AM
Last Post: Vadanane
  [Tkinter] Radio Buttons Working Bassackwards gw1500se 6 2,311 Dec-07-2021, 07:13 PM
Last Post: menator01
  Radio butto to enable/disable combo box in Tkinter cybertooth 5 5,489 Oct-09-2021, 07:30 AM
Last Post: cybertooth
  problem with radio button crook79 3 3,682 Aug-12-2021, 02:30 PM
Last Post: deanhystad
  .grid buttons AnunnakiKungFu 3 1,997 Feb-08-2021, 05:56 PM
Last Post: deanhystad
  [Tkinter] I can't get information from a radio button aquerci 2 2,742 May-20-2020, 10:31 AM
Last Post: aquerci
  [Tkinter] Radio button help Muzz 5 3,681 Apr-28-2019, 07:43 AM
Last Post: Muzz

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020