Жанна
19:58 18-03-2021ок
Всем привет и с этой статьи открывается новый раздел на моем блоге посвященный языку программирования Python. Поехали!
Начнем мы, как это ни странно с программирования графического интерфейса. Тема довольно объемная, поэтому я ее разобью на несколько статей.
Для создания графического интерфейса в Python существует специальный модуль Tkinter. Данный модуль входит в стандартный пакет python, поэтому вам его не понадобится дополнительно устанавливать. Чтобы его подключить со всем содержимым, нам достаточно прописать:
from tkinter import *
После подключения мы можем с ним непосредственно работать.
Первое что необходимо сделать, это создать главное окно, оболочку нашего интерфейса.
window = Tk()
С помощью класса Tk() модуля Tkinter мы создаем окно window и чтобы оно отображалось нам достаточно добавить следующее.
window.mainloop()
Теперь запустив данный код:
from tkinter import *
window = Tk()
window.mainloop()
Мы увидим пустое окошко нашей будующей программы. Да да , программы! Сегодня мы с вами напишем небольшую програмку и это будет не Hello world. А процесс сложения двух чисел и вывода результата.
Для этого нам понадобятся такие элементы, как два поля два ввода чисел, кнопка при нажатии на которую у нас будем выполняться вычисление и поле два вывода результата.
Отлично с этим мы определились. Погнали!
Создаем два поля два ввода чисел:
field1 = Entry(window,width=20,bd=3)
field2 = Entry(window,width=20,bd=3)
Здесь мы создали два поля field1 и field2. Как видите для их создания мы воспользовались классом Entry модуля Tkinter. В котором в качестве аргументов указываем наше главное окно window, ширину 20px и толщину рамки 3px.
Отлично! Далее создаем кнопку
button = Button(window,text='Вычислить сумму')
Кнопку мы создаем через класс Button. Аргумент text это название кнопки. Нам осталось создать поле два вывода результата. Это мы можем сделать через элемент label:
label = Label()
Все, по сути все наши элементы созданы. Теперь осталось только их для отобразить.
Для этого чтобы отображать наши элементы в главном окне нам достаточно применить к каждому из них метод pack(). Все вместе это будет выглядеть так:
from tkinter import *
window = Tk()
field1 = Entry(window,width=20,bd=0)
field2 = Entry(window,width=20,bd=1)
button = Button(window,text='Вычислить сумму')
label = Label()
field1.pack()
field2.pack()
button.pack()
label.pack()
window.mainloop()
В результате элементы будут отображаться в главном окне в той последовательности в которой мы их отобразили с помощью метода pack(). Так как элемент label у нас пустой мы его пока не видим.
И напоследок нам осталось выполнить само вычисление. Для этого необходимо создать функцию и повесить событие на кнопку при котором она будем выполняться.
Начнем с функции:
def calc(event):
if field1.get() != '' and field2.get() != '':
label['text'] = int(field1.get())+ int(field2.get())
Здесь мы объявили функцию с названием calc, отмечу что аргумент event обязателен, это объект события. В самой функции перед выводом результата идет проверка что если поля не пустые, то мы будем выполнять дальнейшие действия. В качестве дальнейших действий у нас является сложение. То есть мы, полю label с помощью параметра text присваиваем сумму введенных чисел из двух полей. Обратите внимание что мы получаем содержимое из полей с помощью метода get() и обрабатываем их функцией int() которая преобразует тип содержимого к целочисленному типу.
Нам осталось только повесить обработчик события клика на кнопку.
button.bind("<Button-1>",calc)
C помощью метода bind() мы установили обработчик события на нашу кнопку. Теперь при клике на нее у нас будет вызываться функция calc() и производится сумма двух чисел.
Весь код:
from tkinter import *
def calc(event):
if field1.get() != '' and field2.get() != '':
label['text'] = int(field1.get())+ int(field2.get())
window = Tk()
field1 = Entry(window,width=20,bd=0)
field2 = Entry(window,width=20,bd=1)
button = Button(window,text='Вычислить сумму')
label = Label()
button.bind("<Button-1>",calc)
field1.pack()
field2.pack()
button.pack()
label.pack()
window.mainloop()
На этом данная статья подошла к концу. Повторюсь что тема довольно объемная и мы продолжим ее еще в будующих статьях.
Желаю успехов и удачи! Пока!
Внимание!!! Комментарий теперь перед публикацией проходит модерацию
ок