Отключенный чекбокс

хочу сделать код на tkinter, нужно, что-бы некоторые чекбоксы были активными сразу, некоторые нельзя поменять

Заранее спасибо


Ответы (1 шт):

Автор решения: Ben Puls

Установить положение чекбоксов в Tkinter можно с помощью BooleanVar, IntVar и StringVar. Для того чтобы сделать чекбокс недоступным для изменения можно передать в аргумент state значение "disabled" (помимо этого существует ещё 2 значения "normal" и "active").

Если всё это объединить, то выглядеть это будет таким образом:

import tkinter as tk

def checkbox_changed():
    print("Положение изменено!")

root = tk.Tk()
root.title("Title")

var1 = tk.BooleanVar()
var2 = tk.BooleanVar()
var3 = tk.BooleanVar()

var1.set(True)
var2.set(False)
var3.set(True)


checkbox1 = tk.Checkbutton(
    root, text="Чекбокс 1", variable=var1, command=checkbox_changed
)
checkbox2 = tk.Checkbutton(
    root, text="Чекбокс 2", variable=var2, command=checkbox_changed
)
checkbox3 = tk.Checkbutton(
    root, text="Чекбокс 3", variable=var3, command=checkbox_changed, 
    state="disabled"
)


checkbox1.pack()
checkbox2.pack()
checkbox3.pack()

root.mainloop()
→ Ссылка