В этой статье рассмотрим задачу создания оконного приложения в Python c помощью модуля tkinter, позволяющего выполнять арифметические вычисления над числами, в частности находить произведения двух чисел, немного модифицировав код вы сможете создать свое первое "оконное" приложение - калькулятор.
Что такое модуль tkinter в Python и для чего он используется
Модуль tkinter в Python используется для создания графических пользовательских интерфейсов (GUI). Он обеспечивает возможность создания различных элементов управления, таких как кнопки, текстовые поля, окна, меню и др.
Основные возможности модуля tkinter включают:
- Создание окон и рамок: Модуль tkinter позволяет создавать главные окна и подокна для отображения информации.
- Создание элементов управления: tkinter предоставляет возможность создания различных элементов управления, таких как кнопки, поля ввода текста, выпадающие списки, радиокнопки и флажки.
- Работа с событиями: tkinter позволяет обрабатывать различные события, такие как нажатие кнопок, изменение значений элементов управления и т. д.
- Отображение графических объектов: Модуль tkinter позволяет отображать графические объекты, такие как линии, прямоугольники и эллипсы.
- Работа с изображениями: Модуль tkinter предоставляет возможность работать с изображениями, включая загрузку, отображение и манипулирование ими на холсте.
- Создание меню: tkinter позволяет создавать различные типы меню, включая контекстное меню, меню с выпадающими списками и панели инструментов.
- Оформление интерфейса: Модуль tkinter позволяет настраивать внешний вид элементов управления и окон с помощью различных параметров, таких как цвет, шрифт, размер и т. д.
Это лишь некоторые из возможностей модуля tkinter. Он является одним из наиболее распространенных инструментов для создания GUI в Python и обладает хорошей документацией и поддержкой сообщества.
Нахождение произведения двух чисел в Python с использованием оконного интерфейса
На этом уроке мы создадим приложение, которое будет находить произведение двух чисел. Нам понадобятся две метки, три текстовых поля и одна кнопка.
1. Создадим графический интерфейс:
from tkinter import *
root=Tk() # создаем главное окно
root.title('Произведение двух чисел')
Label(root,text='Первое число').pack() # создаем метку и сразу размещаем
EntryA=Entry(root,width=10,font='Arial 16') # создаем текстовое поле ввода
EntryA.pack() # размещаем в главное окне методом pack()
Label(root,text='Второе число').pack()
EntryB=Entry(root,width=10,font='Arial 16')
EntryB.pack()
EntryC=Entry(root,width=20,font='Arial 16')
EntryC.pack()
but=Button(root,text='Произведение')
but.pack() # размещаем кнопку в главном окне
root.mainloop() # цикл прорисовки окна
После запуска вы должны увидеть следующее окно приложения:
Согласитесь, выглядит не очень симпатично. Что поделать, метод размещения виджетов pack() в данном случае нам не подходит.
2. Метод размещения Grid
С помощью этого способа мы можем разместить виджеты по сетке, состоящей из столбцов и строк. Можно объединять столбцы и строки, указывать выравнивание элементов.
Если внимательно посмотреть рисунок в начале этого урока, то вы можете заметить, что окно нашего приложения состоит из 4 строк и 2 столбцов, причем некоторые ячейки объединены.
3. Перепишем нашу программу с использованием Grid
from tkinter import *
root = Tk()
root.title('Произведение двух чисел')
# первая метка в строке 0, столбце 0 (0 по умолчанию)
# паррамет sticky означает выравнивание. W, E,N,S — запад, восток, север, юг
Label(root, text='Первое число').grid(row=0, sticky=W)
# вторая метка в строке 1
Label(root, text='Второе число').grid(row=1, sticky=W)
# создаем виджеты текстовых полей
EntryA = Entry(root, width=10, font='Arial 16')
EntryB = Entry(root, width=10, font='Arial 16')
EntryC = Entry(root, width=20, font='Arial 16')
# размещаем первые два поля справа от меток, второй столбец (отсчет от нуля)
EntryA.grid(row=0, column=1, sticky=E)
EntryB.grid(row=1, column=1, sticky=E)
# третье текстовое поле ввода занимает всю ширину строки 2
# columnspan — объединение ячеек по столбцам; rowspan — по строкам
EntryC.grid(row=2, columnspan=2)
# размещаем кнопку в строке 3 во втором столбце
but = Button(root, text='Произведение')
but.grid(row=3, column=1, sticky=E)
root.mainloop()
После запуска мы увидим правильно оформленное окно:
Осталось написать функцию, вычисляющую произведение чисел и привязать к кнопке.
4. Напишем функцию обработчик нажатия кнопки
Эту функцию необходимо разместить до создания кнопки:
def proizv():
a = EntryA.get() # берем текст из первого поля
a = int(a) # преобразуем в число целого типа
b = EntryB.get()
b = int(b)
result = str(a * b) # результат переведем в строку для дальнейшего вывода
EntryC.delete(0, END) # очищаем текстовое поле полностью
EntryC.insert(0, result) # вставляем результат в начало
5. Привяжем нажатие кнопки с функцией (добавьте команду для кнопки)
but = Button(root, text='Произведение', command=proizv)
То есть в пункте 3 нужно заменить строку:
but = Button(root, text='Произведение')
на сроку: but = Button(root, text='Произведение', command=proizv)
Запустите программный код на исполнение и у вас на экране появится окно, в котором нужно будет ввести два числа и по нажатию кнопки "произведение" вы сможете найти произведение введенных вами двух чисел.
Задание №1
Добавьте функциональность вашему оконному приложению, например, добавив кнопку, позволяющую помимо нахождения произведения складывать введенные числа.
Задание №2
Создайте оконное приложение "калькулятор", которое позволит выполнять операции сложения, вычитания, умножения и деления вводимых вами чисел.
Сейчас читают на нашем канале:
Подписывайтесь на канал и ставьте лайк, Вас ждет много полезной информации!
Мы будем рады видеть Вас в числе наших подписчиков!