Почему Checkbutton Tkinter всегда возвращает 0 в IntVar?

Рейтинг: -3Ответов: 1Опубликовано: 12.08.2025
exam = IntVar(value=0)

checkbox = Checkbutton(
    mode_wrapper,
    text="Экзамен",
    variable=exam,
    font=("Verdana", F_13),
    bg="lightblue",
    onvalue=1,
    offvalue=0,
    command=lambda: print(exam.get())
)
checkbox.pack(side=LEFT, padx=5, pady=(0,10))

Почему-то при нажатии кнопки вывод всегда такой:

 - 0 
 - 0
 - 0
 - 0

Checkbutton должен менять значение переменной как переключатель (выключен - ставит значение exam равное 0, включён - 1).
Всё вроде сделано верно, но переключатель не работает, переменная всегда равна 0.

Как исправить?

Ответы

▲ 2

Ваша проблема у меня не воспроизводится 💁‍♀️

import tkinter as tk
from tkinter import IntVar, Checkbutton

root = tk.Tk()
exam = IntVar(value=0)

checkbox = Checkbutton(
    root,
    text="Экзамен",
    variable=exam,
    onvalue=1,
    offvalue=0,
    font=("Verdana", 13),
    bg="lightblue",
    command=lambda: print(exam.get()),
)
checkbox.pack(pady=20)
root.mainloop()

введите сюда описание изображения