tkinter - ttk.Checkbutton

ttk.Checkbutton

ttk.Checkbutton erzeugen

cb = ttk.Checkbutton(parent, Optionen)

OptionsnameBeschreibung
commandCallback, wird bei sich änderdem Checkstatus aufgerufen
offvalueWert für "aus". Default ist 0 (Null)
onvalueWert für "an". Default ist 1 (Eins)
variableeine Variable, die den aktuellen on/offvalue festhält und ausgelesen werden kann

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

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

Bild der Anwendung
import tkinter as tk
from tkinter import ttk

class A(tk.Tk):
    def __init__(self):
        super().__init__()
        self.geometry("300x200")
        self._createWidgets()

    def _createWidgets(self):
        self.ivar = tk.IntVar(value=1)
        c = ttk.Checkbutton(self, text='Check mich!',
                            variable=self.ivar,
                            command=self.onCheck)
        c.pack()
        self.svar = tk.StringVar()
        c = ttk.Checkbutton(self, text='Mich auch, bitte',
                            variable=self.svar,
                            onvalue='JA', offvalue='NEIN!',
                            command=self.onCheck)
        c.pack()
        
    def onCheck(self):
        print(self.ivar.get(), self.svar.get())
        
if __name__ == '__main__':
    window = A()
    window.mainloop()

Methoden

Toolbutton

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

Bild der Anwendung
import tkinter as tk
from tkinter import ttk

class A(tk.Tk):
    def __init__(self):
        super().__init__()
        self.geometry("300x200")
        self._createWidgets()

    def _createWidgets(self):
        ttk.Checkbutton(self, text='Check mich!').pack()
        ttk.Checkbutton(self, text='Check mich!', style='Toolbutton').pack()

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

Referenzen

Siehe Auch

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