tkinter - ttk.Radiobutton

ttk.Radiobutton

ttk.Radiobutton erzeugen

rb = ttk.Radiobutton(parent, Optionen)

OptionsnameBeschreibung
commandCallback, wird bei sich änderdem Status aufgerufen
valueRadiobutton-Wert
variableVariable, die den Wert des ausgewählten Radiobuttons hält. Eine gemeinsame Variable für mehrere Radiobuttons definiert die Buttongroup

ttk.Radiobutton kennt die Standardoptionen: class_, compound, cursor, image, state, style, takefocus, text, textvariable, underline und width

Das folgende Programm stellt zwei Radiobuttons bereit und reagiert auf Knopfdruck:

Bild der Anwendung
import tkinter as tk
from tkinter import ttk
from tkinter import font

class A(tk.Tk):
    def __init__(self):
        super().__init__()
        self.geometry('400x400')
        self._createWidgets()

    def _createWidgets(self):
        self.intVar = tk.IntVar(value='1')
        rb1 = ttk.Radiobutton(self, text='Hamburger', value=1,
                              variable=self.intVar, command=self._onClick)
        rb1.pack()
        rb2 = ttk.Radiobutton(self, text='Cheeseburger', value=2,
                              variable=self.intVar, command=self._onClick)
        rb2.pack()

    def _onClick(self):
        print('Wahl:', self.intVar.get())

if __name__ == '__main__':
    window = A()
    window.mainloop()

Methoden

Toolbutton

Für eine schnelle Style-variante ohne Rahmen und Indikator kann man auf Toolbutton zurückgreifen. Hier die zwei Styles im Vergleich:

Bild der Anwendung
import tkinter as tk
from tkinter import ttk
from tkinter import font

class A(tk.Tk):
    def __init__(self):
        super().__init__()
        self.geometry('400x400')
        self._createWidgets()

    def _createWidgets(self):
        self.intVar = tk.IntVar(value='1')
        rb1 = ttk.Radiobutton(self, text='Hamburger', value=1,
                              variable=self.intVar, command=self._onClick)
        rb1.pack()
        rb2 = ttk.Radiobutton(self, text='Cheeseburger', value=2,
                              variable=self.intVar, command=self._onClick,
                              style='Toolbutton')
        rb2.pack()

    def _onClick(self):
        print('Wahl:', self.intVar.get())

if __name__ == '__main__':
    window = A()
    window.mainloop()

Referenzen

Siehe Auch

https://www.tcl.tk/man/tcl8.7/TkCmd/ttk_radiobutton.html