Tkinter Tutorial - Чек-кнопка

  1. Контрольная кнопка Tkinter Основной пример
  2. Кнопка Выбор/Выберите
  3. Tkinter Checkbutton State Toggle
  4. Привязка функции обратного вызова Tkinter Checkbutton
  5. Изменить Tkinter Checkbutton Значение по умолчанию

Виджет Checkbutton - это виджет со значением. Чековые кнопки могут содержать как текст, так и изображения. Он также может связать функцию обратного вызова, которая будет вызвана при нажатии на чек-кнопку.

Для создания виджета с чек-кнопками в существующем родительском окне используйте

tk.Checkbutton(parent, option, ...)

Контрольная кнопка Tkinter Основной пример

Tkinter CheckButton_Basic.py
import tkinter as tk
 
app = tk.Tk() 
app.geometry('150x100')

chkValue = tk.BooleanVar() 
chkValue.set(True)
 
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue) 
chkExample.grid(column=0, row=0)
 
app.mainloop()

Учебное пособие Tkinter Контрольная кнопка Основной пример

chkValue = tk.BooleanVar() 

Каждая контрольная кнопка должна быть связана с переменной. Тип данных переменной определяется с помощью контрольной кнопки при ее выборе/отключении.

chkValue.set(True)

При этом устанавливается исходное значение контрольной кнопки. Так как она просто присваивается к типу данных Boolean, то здесь у Вас есть только две опции, True или False.

chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue) 

Теперь экземпляр контрольной кнопки в конечном итоге создается с помощью переменной chkValue, которую мы сделали выше.

chkExample.grid(column=0, row=0)

grid - это другой тип управляющих элементов компоновки кинтера, кроме пакета, представленного в разделе Tkinter Label.

В Tkinter есть три менеджера верстки/геометрии,

  • пакет
  • сетка
  • место

Мы познакомим вас с менеджерами по верстке/геометрии в одном из разделов этого руководства.

Кнопка Выбор/Выберите

Пользователь может нажать кнопку с флажком в графическом интерфейсе, чтобы выбрать или отменить выбор. Вы также можете выбрать или снять выделение с кнопки, используя методы select() и deselect().

chkExample.select()
print "The checkbutton value when selected is {}".format(chkValue.get())
chkExample.select()
print "The checkbutton value when deselected is {}".format(chkValue.get())
The checkbutton value when selected is True
The checkbutton value when deselected is False

Здесь значение контрольной кнопки получается методом get().

Tkinter Checkbutton State Toggle

Состояние кнопки проверки может быть изменено с помощью select() и deselect(), а также может быть переключено с помощью метода toggle().

Tkinter CheckButton_Select_Deselect.py
import tkinter as tk
 
app = tk.Tk() 
app.geometry('150x100')

chkValue = tk.BooleanVar() 
chkValue.set(True)
 
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue) 
chkExample.grid(column=0, row=0)


print "The checkbutton original value is {}".format(chkValue.get())
chkExample.toggle()
print "The checkbutton value after toggled is {}".format(chkValue.get())
chkExample.toggle()
print "The checkbutton value after toggled twice is {}".format(chkValue.get())

app.mainloop()
The checkbutton original value is True
The checkbutton value after toggled is False
The checkbutton value after toggled twice is True

Привязка функции обратного вызова Tkinter Checkbutton

Виджет чек-кнопок используется для выбора состояний, а также может привязывать функцию обратного вызова к событию, когда оно выбрано/отключено, или более прямолинейно, переключено. Всякий раз, когда переключается состояние кнопки с флажком, включается функция обратного вызова.

Tkinter CheckButton_CallBack.py
import tkinter as tk
from _cffi_backend import callback
 
def callBackFunc():
    print "Oh. I'm clicked"
    
app = tk.Tk() 
app.geometry('150x100')

chkValue = tk.BooleanVar() 
chkValue.set(True)
 
chkExample = tk.Checkbutton(app, text='Check Box', 
                            var=chkValue, command=callBackFunc) 
chkExample.grid(column=0, row=0)

app.mainloop()

Каждый раз, когда Вы нажимаете на контрольную кнопку, Вы можете видеть, что она печатает `Oh. Я нажимаю на кнопку в консоли.

Опция команда в классе Checkbutton предназначена для привязки функции или метода обратного вызова при нажатии кнопки.

Изменить Tkinter Checkbutton Значение по умолчанию

Значение по умолчанию, соответствующее невыбранной контрольной кнопке, равно 0, а значение по умолчанию для выбранной контрольной кнопки равно 1. Также можно изменить значения по умолчанию для контрольной кнопки и связанные с ней типы данных на другие значения и/или типы данных.

Tkinter CheckButton_Select_OnValue_OffValue.py
import tkinter as tk
 
app = tk.Tk() 
app.geometry('150x100')

chkValue = tk.StringVar() 
 
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue,
                            onvalue="RGB", offvalue="YCbCr") 
chkExample.grid(column=0, row=0)

chkExample.select()
print "The checkbutton value when selected is {}".format(chkValue.get())
chkExample.deselect()
print "The checkbutton value when deselected is {}".format(chkValue.get())

app.mainloop()

The checkbutton value when selected is RGB
The checkbutton value when deselected is YCbCr
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue,
                            onvalue="RGB", offvalue="YCbCr") 

onvalue и offvalue - это опции изменения значений выбранных и невыбранных состояний. Они могут иметь такие типы данных, как Int, String, Float или другие.

Внимание

Тип данных Tkinter, связанный с кнопкой проверки, должен совпадать с типом данных onvalue и offvalue. В противном случае он сообщает _tkinter.TclError.

comments powered by Disqus