Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

библиотека tkinter

библиотека tkinter

Всем привет и с этой статьи открывается новый раздел на моем блоге посвященный языку программирования 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()

На этом данная статья подошла к концу. Повторюсь что тема довольно объемная и мы продолжим ее еще в будующих статьях.

Желаю успехов и удачи! Пока!

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Жанна

19:58 18-03-2021

ок

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm