Модуль tkinter. Урок №2 — Виджеты и их свойства

На этом уроке мы рассмотрим некоторые часто используемые графические объекты (виджеты) такие как радиокнопка, флажки, метка, текстовые поля ввода, списки.

(рис. Поляков К.Ю.)

1. Объект переключатель (радиокнопка)

Всегда используется группой. Служит для выбора одного значения из нескольких.

var=IntVar()
var.set(0)
rad0 = Radiobutton(root,text="Первый вариант ", variable=var,value=0)
rad1 = Radiobutton(root,text="Второй вариант", variable=var,value=1)
rad2 = Radiobutton(root,text="Третий вариант", variable=var,value=2)

rad0.pack() #размещаем в окне приложения
rad1.pack()
rad2.pack()

Все радиокнопки привязаны к одной переменной с именем var. В нашем случае она будет принимать значения 0,1 или 2. Начальное значение установлено как 0.

2. Флажок

Объект checkbutton предназначен для выбора не взаимоисключающих пунктов в окне (в группе можно активировать один, два или более флажков или не один). В отличие от радиокнопок, значение каждого флажка привязывается к своей переменной, значение которой определяется опциями onvalue (включено) и offvalue (выключено) в описании флажка.

c1 = IntVar()
c2 = IntVar()

che1 = Checkbutton(root,text="Первый флажок",variable=c1,onvalue=1,offvalue=0)
che2 = Checkbutton(root,text="Второй флажок",variable=c2,onvalue=5,offvalue=0)

che1.pack() #размещаем в окне приложения
che2.pack()

3. Метки

Метки (или надписи) — это достаточно простые виджеты, содержащие строку (или несколько строк) текста и служащие в основном для информирования пользователя.

lab1 = Label(root, text="Это метка \n из двух строк.", font="Arial 12")
lab1.pack() #размещаем в окне приложения

4. Текстовое поле ввода

text1 = Entry(root,width=25,bd=2)
text1.pack() #размещаем в окне приложения

С помощью необязательного атрибута bd можно менять ширину границы поля.

5. Списки

Списки (класс ListBox) позволяет выбрать один или несколько пунктов в зависимости от значения опции selectmode. Значение SINGLE позволяет выбрать только один пункт, MULTIPLY — несколько пунктов.
В примере ниже создается список с возможностью множественного выбора:

s = ['Java','Python','Pascal','C#']
list1 = Listbox(root,selectmode=MULTIPLE)
for x in s:
    list1.insert(END,x)
list1.pack()

В цикле for в конец списка добавляются названия языков программирования из массива s.

Задание 1.

Создайте почтовую форму, как на рисунке:

Задание 2.

Создайте форму с радиокнопками и флажками:


Подсказка: для изменения цвета фона и цвета надписи виджета используются атрибуты bg и fg.
Пример для кнопки:

but = Button(root, text="Это кнопка", width=30,height=5, bg="white",fg="blue")