Доброго времени суток дорогие и сегодня мы продолжаем серию статей по python. Темой будет продолжение рассмотрения программирования графического интерфейса с помощью библиотеки tkinter. Поехали!
Напишем небольшую форму для отправки данных:
from tkinter import *
window = Tk()
label = Label(text="Тема сообщения")
label2 = Label(text="Введите сообщение")
field1 = Entry(window,width=20,bd=0)
text = Text(window,width=40,height=10,
font="Verdana 12")
label3 = Label(text="Укажите ваш возраст")
var=IntVar()
var.set(1)
radio1 = Radiobutton(window,text="14-25",
variable=var,value=1)
radio2 = Radiobutton(window,text="25-40",
variable=var,value=2)
radio3 = Radiobutton(window,text="Более 40",
variable=var,value=3)
label4 = Label(text="Выберите")
check1 = IntVar()
check2 = IntVar()
checkbox1 = Checkbutton(window,text="Первый флажок",
variable=check1,onvalue=1,offvalue=0)
checkbox2 = Checkbutton(window,text="Второй флажок",
variable=check2,onvalue=2,offvalue=0)
button = Button(window,text='Отправить')
label.pack()
field1.pack()
label2.pack()
text.pack()
label3.pack()
radio1.pack()
radio2.pack()
radio3.pack()
label4.pack()
checkbox1.pack()
checkbox2.pack()
button.pack()
window.mainloop()
После запуска данного кода у нас открывается окно в которой содержится наша форма для отправки сообщения. Она включает в себя маленькое поле для ввода темы сообщения, основное текстовое поле, три радио кнопки для выбора категории возраста и два чек бокса для включения дополнительных настроек. Завершается все это дело кнопкой отправить.
Итак,c элементами label, Entry и Button мы познакомились в предыдущей статье поэтому здесь мы подробно останавливаться не будем.
Для вывода основного текстового поля мы используем класс text:
text = Text(window,width=40,height=10,
font="Verdana 12")
В самом классе в качестве аргумента мы первым параметром указываем объект класса Tk()(главное окно приложения). Затем у нас идет перечисление свойств и их значение которые мы хотим применить к данному полю. Здесь мы можем перечислять их в любой последовательности. Мы указали ширину равную 40 символам, высоту 10 символам и шрифт Verdana 12 пикселей. К примеру если мы хотим чтобы у нашего тестового поля появилась рамка толщиной 2 пикселя мы можем добавить свойство border равное 2:
text = Text(window,width=40,height=10,
font="Verdana 12", border=1)
Ознакомится со всеми свойствами которые мы можем задавать элементам вы можете в документации библиотеки tkinter. После создания элемента text не забудьте дописать text.pack() с помощью данной строчки мы отобразим наше поле в главном окне приложения.
Идем дальше, помимо текстового поля мы в форме используем радио кнопки, выглядит это следующим образом:
var=IntVar()
var.set(1)
radio1 = Radiobutton(window,text="14-25",
variable=var,value=1)
radio2 = Radiobutton(window,text="25-40",
variable=var,value=2)
radio3 = Radiobutton(window,text="Более 40",
variable=var,value=3)
Здесь мы создали три радио кнопки radio1, radio2, radio3. Но перед этим мы создали переменную var значением которой является специальная функция IntVar(), далее с помощью метода set(1) мы установили значение 1. При создании самих радио кнопок мы воспользовались классом Radiobutton(). Здесь помимо объекта главного окна window мы указали текст радио кнопки(text), значение нашей переменной var через свойство variable и значение самой кнопки value. Замечу что переменная var является связующей для всех этих трех кнопок. Однако так как они имеют разные значение мы можем выбрать только одну из них.
В заключение к этой статье нам остается рассмотреть чек боксы:
check1 = IntVar()
check2 = IntVar()
checkbox1 = Checkbutton(window,text="Первый флажок",
variable=check1,onvalue=1)
checkbox2 = Checkbutton(window,text="Второй флажок",
variable=check2,onvalue=2)
Здесь мы также воспользовались функцией IntVar() в качестве значений переменных. Но переменных у нас уже две. Как впрочем и чек боксов.
Для создания чек бокса мы используем класс Checkbutton(). В него передается объект window главный объект нашего окна который мы создали в самом начале с помощью класса Tk() и остальные параметры.
text - текст нашего чек бокса
variable - переменная для каждого чек бокса
onvalue - значение каждого чек бокса
С помощью чек бокса в отличии от радио кнопки мы можем выбирать несколько вариантов сразу.
И напоследок напоминаю что для отображения всех элементов в главном окне приложения не забывайте к ним применять метод pack(). Пример:
label.pack()
field1.pack()
label2.pack()
text.pack()
label3.pack()
radio1.pack()
radio2.pack()
radio3.pack()
label4.pack()
checkbox1.pack()
checkbox2.pack()
button.pack()
Здесь указаны все элементы формы которые мы отображаем в нашем главном окне.
А на этом у меня все. Спасибо за внимание.
Желаю удачи и успехов! Пока!