Как создать калькулятор в Python Tkinter ActiveState
Tkinter — самый популярный способ создания пользовательских интерфейсов в Python. Этот учебник предоставляет вам всю информацию, необходимую для понимания Tkinter и того, как его применять на практике.
Почему Tkinter для создания графических интерфейсов Python?
Tkinter популярен, потому что это простой в использовании, но мощный инструмент. Также не помешает то, что Tkinter — единственный UI-фреймворк, встроенный в стандартную библиотеку Python. Tkinter также является кроссплатформенным инструментом, отображающим графический интерфейс с использованием собственных элементов операционной системы, так что приложения, созданные с помощью Tkinter, выглядят так, как будто они принадлежат любой платформе, на которой они установлены.
Несмотря на то, что приложения Tkinter могут выглядеть устаревшими по сравнению с приложениями, созданными с использованием более сложных графических интерфейсов, Tkinter сравнительно легковесен и безболезнен для написания кода. Для более современного вида вы можете воспользоваться модулем tkinter.ttk (который обеспечивает доступ к тематическому набору виджетов Tk), который вместе с классом ttk.Style() придает приложениям Tkinter более современный вид. и чувствовать.
Когда дело доходит до кодирования приложения, Tkinter предлагает простую структуру, управляемую событиями, в которой приложения реагируют на события, управляемые пользователем, такие как щелчок мышью.
Этот учебник разделен на простые для понимания разделы, каждый из которых начинается с комментария и пронумерован для справки. Если у вас установлена последняя версия Python, вы можете следовать коду в каждом разделе:
- Import Tkinter
- Создать контейнер
- Определить функции виджета
- Дизайн приложения
- Запустить приложение
1) Импорт Tkinter
Мы будем использовать Tkinter для создания приложения-калькулятора с основными арифметическими функциями. Поскольку последние версии Python содержат как Tkinter, так и основные математические функции в базовой библиотеке, все, что нам нужно сделать, чтобы начать, — это установить Python.
Для пользователей Windows:
Сначала установите State Tool, выполнив следующую команду в командной строке Powershell:
IEX(New-Object Net.WebClient).downloadString('https://platform.activestate.com/ dl/cli/install.ps1')
Инструмент состояния теперь будет автоматически устанавливать Python 3.8 в виртуальную среду для вас, когда вы запускаете следующее в командной строке:
состояние активировать --default ActiveState/ActivePython-3.8
Для пользователей Linux или Mac:
Сначала установите State Tool, выполнив в командной строке следующую команду:
sh <(curl -q https://platform.activestate.com/dl/cli/install.sh)
State Tool теперь автоматически установите Python 3.8 в виртуальную среду для вас, когда вы запустите следующее:
состояние активировать --default ActiveState/ActivePython-3.8
Теперь мы можем импортировать все из пакета Tkinter:
из tkinter import *
2) Создайте контейнер Tkinter
Для элементов пользовательского интерфейса требуется контейнер/окно, в котором они размещаются. Чтобы создать корневое окно, введите следующий код и укажите для него имя ( <любое_имя> ). Вы также можете переименовать заголовок окна с КАЛЬКУЛЯТОР на все, что пожелаете.
<любое_имя> = Tk() root = Tk()
# Геометрический метод, определяющий размер корневого окна: «width x height»:
root.geometry("312x324")
# Предотвращение изменения размера корневого окна :
root. resizable(0, 0)
# Заголовок окна:
root.title("КАЛКУЛЯТОР")
3) Определение функций виджета Tkinter
На этом шаге вы определите, что происходит, когда пользователь нажимает кнопку в нашем калькуляторе. Нам понадобится код, который может:
- Вводить число или операцию на btn_click()
- Очистить ввод на btn_clear()
- Вычислить ввод на btn_equal()
№ 3а. Функция btn_click обновляет поле ввода всякий раз, когда вводится число. Любая нажатая кнопка будет действовать как обновление по нажатию кнопки:
def btn_click(item):
глобальное выражение выражение = выражение + строка (элемент) input_text.set(выражение)
# 3b. Функция btn_clear очищает поле ввода и предыдущие вычисления с помощью кнопки «Очистить»:
def btn_clear():
глобальное выражение выражение = "" input_text. set("")
# 3c. Функция btn_equal вычисляет выражение, введенное в поле ввода.
по умолчанию btn_equal(): глобальное выражение
# функция eval() вычисляет строковые выражения напрямую:
result = str(eval(expression)) input_text.set(результат) выражение = ""
выражение = ""
# StringVar()’ используется для получения экземпляра поля ввода:
input_text = StringVar()
4) Разработка приложения
Теперь, когда у нас есть необходимый код, мы можем:
- Создать рамку, в которую поместим наше поле ввода
- Создать поле ввода, в котором будут отображаться числа и математические операции
- Создадим рамку, в которую поместим наши кнопки
- Поместите кнопки в ряды и настройте их для запуска событий, определенных в разделе 3 .
№ 4а. Используйте виджет «Рамка», чтобы создать рамку для поля ввода:
input_frame = Frame (корень, ширина = 312, высота = 50, bd = 0, HighlightBackground = «черный», HighlightColor = «черный», HighlightThickness = 1) input_frame. pack (сторона = ВЕРХ)
№ 4б. Создайте поле ввода внутри фрейма, созданного на предыдущем шаге. Вывод выровнен по правому краю:
input_field = Entry(input_frame, font = ('arial', 18, 'bold'), textvariable = input_text, width = 50, bg = "#eee", bd = 0, justify = ПРАВИЛЬНО) input_field.grid (строка = 0, столбец = 0) input_field.pack (ipady = 10)
# ipady — это внутренний отступ, увеличивающий высоту поля ввода.
# 4c. Создайте отдельный фрейм под полем ввода, который будет включать кнопки, расположенные рядами внутри фрейма:
btns_frame = Frame(root, width = 312, height = 272,5, bg = "grey") btns_frame.pack()
# Оставшаяся часть этого раздела определяет виджеты Button, расположенные в 5 рядах внутри виджета Frame. Кнопки расположены с помощью grid() Менеджер компоновки. Каждая кнопка имеет событие, которое может быть вызвано действием мыши, настроенным в предыдущем разделе. Например. btn_click()
# 4d. Первая строка включает 2 кнопки, «Очистить (Очистить)» и «Разделить (/)»:
clear = Button(btns_frame, text = «Очистить», fg = «черный», width = 32, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_clear()).grid (строка = 0, столбец = 0, columnpan = 3, padx = 1, pady = 1) разделить = кнопка (btns_frame, текст = "/", fg = "черный", ширина = 10, высота = 3, bd = 0, bg = "#eee", курсор = "рука2", команда = лямбда: btn_click (" /")).grid(строка = 0, столбец = 3, padx = 1, pady = 1)
# 4д. Второй ряд включает 4 кнопки: «7», «8», «9» и «Умножить (*)»:
семь = Кнопка (btns_frame, text = «7», fg = «черный», ширина = 10 , высота = 3, bd = 0, bg = "#fff", курсор = "рука2", команда = лямбда: btn_click (7)).grid (строка = 1, столбец = 0, padx = 1, pady = 1) восемь = кнопка (btns_frame, текст = "8", fg = "черный", ширина = 10, высота = 3, bd = 0, bg = "#fff", курсор = "рука2", команда = лямбда: btn_click (8 ))grid(строка = 1, столбец = 1, padx = 1, pady = 1) девять = Кнопка (btns_frame, текст = "9", fg = "черный", ширина = 10, высота = 3, bd = 0, bg = "#fff", курсор = "рука2", команда = лямбда: btn_click (9)).grid (строка = 1, столбец = 2, padx = 1, pady = 1) умножить = кнопка (btns_frame, текст = "*", fg = "черный", ширина = 10, высота = 3, bd = 0, bg = "#eee", курсор = "рука2", команда = лямбда: btn_click (" *")).grid(строка = 1, столбец = 3, padx = 1, pady = 1)
# 4f. Третий ряд включает 4 кнопки: «4», «5», «6» и «Вычесть (-)». , высота = 3, bd = 0, bg = "#fff", курсор = "рука2", команда = лямбда: btn_click (4)).grid (строка = 2, столбец = 0, padx = 1, pady = 1) пять = кнопка (btns_frame, текст = "5", fg = "черный", ширина = 10, высота = 3, bd = 0, bg = "#fff", курсор = "рука2", команда = лямбда: btn_click (5 ))grid(строка = 2, столбец = 1, padx = 1, pady = 1) шесть = кнопка (btns_frame, текст = "6", fg = "черный", ширина = 10, высота = 3, bd = 0, bg = "#fff", курсор = "рука2", команда = лямбда: btn_click (6 ))grid(строка = 2, столбец = 2, padx = 1, pady = 1) минус = Кнопка (btns_frame, text = "-", fg = "черный", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click(" -")). grid(строка = 2, столбец = 3, padx = 1, pady = 1)
# 4г. Четвертая строка включает 4 кнопки: «1», «2», «3» и «плюс (+)»:
one = Button(btns_frame, text = "1", fg = "black", width = 10, высота = 3, bd = 0, bg = "#fff", курсор = "рука2", команда = лямбда: btn_click (1)).grid (строка = 3, столбец = 0, padx = 1, pady = 1 ) two = Button(btns_frame, text = "2", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(2 ))grid(строка = 3, столбец = 1, padx = 1, pady = 1) three = Button(btns_frame, text = "3", fg = "black", width = 10, height = 3, bd = 0, bg = "#fff", cursor = "hand2", command = lambda: btn_click(3) ))grid(строка = 3, столбец = 2, padx = 1, pady = 1) plus = Button(btns_frame, text = "+", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click(" +")).grid(строка = 3, столбец = 3, padx = 1, pady = 1)
# 4ч. Пятая строка включает 3 кнопки: «0», «Десятичный (. )» и «Равно (=)»:
ноль = Button(btns_frame, text = «0», fg = «black», width = 21, высота = 3, bd = 0, bg = "#fff", курсор = "рука2", команда = лямбда: btn_click (0)).grid (строка = 4, столбец = 0, columnspan = 2, padx = 1 , пади = 1) point = Button(btns_frame, text = ".", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_click(" .")).grid(строка = 4, столбец = 2, padx = 1, pady = 1) equals = Button(btns_frame, text = "=", fg = "black", width = 10, height = 3, bd = 0, bg = "#eee", cursor = "hand2", command = lambda: btn_equal() ).grid(строка = 4, столбец = 3, padx = 1, pady = 1)
5) Запустите приложение
Теперь, когда мы разместили все элементы графического интерфейса и связали их с кодом, необходимым для отражения пользовательского ввода, пришло время опробовать наш калькулятор, выполнив следующую команду:
root .mainloop()Резюме
В этом учебном пособии по калькулятору демонстрируется ряд общих методов, с которыми должен ознакомиться каждый, кто работает с Tkinter, в том числе:
- Кодирование событий, которые определяют, что происходит, когда пользователь взаимодействует с элементом пользовательского интерфейса
- Создание контейнеров/окон, содержащих виджеты Frame, в которые можно помещать элементы пользовательского интерфейса
- Использование Tkinter Layout Manager для размещения виджетов Button внутри виджета Frame
Для Tkinter доступны три менеджера компоновки: pack(), place(), grid() .
- pack() организует виджеты в горизонтальные и вертикальные блоки, которые ограничены левым, правым, верхним, нижним позициями. Каждая коробка смещена и относительно друг друга.
- place() размещает виджеты в двумерной сетке, используя абсолютные координаты x и y.
- grid() упорядочивает виджеты в двумерной сетке, используя абсолютные координаты строк и столбцов, подобно электронной таблице.
Кроме того, вы можете использовать padding ( padx, pady ), чтобы изменить расстояние между pack() сторонами, place() координатами x,y и grid() строками и столбцами. Например:
grid( row = 1, column = 2, padx = 1, pady = 1 )
Функции виджета кнопок, такие как btn_click , позиционируются с помощью grid() . Например:
command = lambda: btn_click(«/»)).grid(row = 0, column = 3, padx = 1, pady = 1)
Диспетчер компоновки сетки был выбран для приложения «Калькулятор», потому что его точности по сравнению с другими методами компоновки. В конце концов, калькулятор должен быть точным.
Получите исходный код calculate.py здесь.
Хотя дистрибутив Python с открытым исходным кодом может быть удовлетворительным для отдельного человека, он не всегда отвечает требованиям поддержки, безопасности или платформы крупных организаций.
Вот почему организации выбирают ActivePython для обработки данных, обработки больших данных и статистического анализа.
ActivePython поставляется с наиболее важными пакетами, необходимыми специалистам по обработке и анализу данных, предварительно скомпилирован, поэтому вам и вашей команде не придется тратить время на настройку дистрибутива с открытым исходным кодом. Вы можете сосредоточиться на том, что важно, тратя больше времени на создание алгоритмов и прогнозных моделей на основе ваших больших источников данных и меньше времени на настройку системы.
Некоторые популярные пакеты Python для науки о данных/больших данных/машинного обучения. Предварительно скомпилированные с помощью ActivePython
- pandas (анализ данных)
- NumPy (многомерные массивы)
- SciPy (алгоритмы для использования с numpy)
- HDF5 (хранение и обработка данных)
- Matplotlib (визуализация данных)
- Jupyter (сотрудничество в исследованиях)
- PyTables (управление наборами данных HDF5)
- HDFS (оболочка C/C++ для Hadoop)
- pymongo (драйвер MongoDB)
- SQLAlchemy (набор инструментов Python SQL)
Переходный детский сад • Дошкольное обучение • TKCalifornia
Переходный детский сад • Дошкольное обучение • TKCalifornia youtube.com/embed/Fm2qTbMen4M» frameborder=»0″ allow=»accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share» allowfullscreen=»»>Предоставление юным учащимся хорошего старта в Transitional Kindergarten
Transitional Kindergarten (TK) — это один из первых шагов, которые самые маленькие учащиеся Калифорнии делают в своей академической карьере, а новые обновления политики в области образования теперь позволяют обслуживать больше детей в TK ! TKCalifornia , вы можете узнать больше о ТЗ, а также получить ценную, простую в использовании поддержку и советы по обучению и администрированию высококачественных ТЗ, которые помогут вашим юным ученикам хорошо начать! Узнать больше ›
Хронология карты политик ТЗ
Готово, установлено…
2 сентября – 2 декабря Дни рождения
- Гранты на реализацию выданы
- Гранты на объекты выданы
- Требования к обучению учителей ТЗ продлены до 2023 года
Вперёд! Расширение ТК начинается!
2 сентября – 2 февраля Дни рождения
- Максимальный размер класса 24
- Соотношение ученик/учитель 12:1
- Прошлый год для учителей TK, чтобы выполнить требования к подготовке учителей
Становимся еще лучше…
2 сентября – 2 апреля Дни рождения
- Соотношение учеников и учителей 10:1 (в зависимости от финансирования)
- Все преподаватели ТЗ должны иметь аттестат + специальное обучение ЕЭК
Почти готово…
2 сентября – 2 июня Дни рождения
Финиш!
Все дети, которым к 1 сентября исполнится 4 года, могут записаться в ТК!
Скачать PDF-версию
Информация для администраторов
Информация для учителей
Информация для родителей
Ознакомьтесь с нашей библиотекой ресурсов ТЗ
Наша библиотека ресурсов ТЗ включает множество ресурсов, предназначенных для поддержки администраторов ТЗ, учителей и родителей. Наш список ресурсов исходит от различных преподавателей, исследователей и организаций штата, работающих над поддержкой внедрения ТЗ в Калифорнии.
Избранные ресурсы
Администраторы
Часто задаваемые вопросы о переходном детском саду
Посмотреть ресурс Больше информации
Учителя
Набор инструментов для многоязычного обучения
Посмотреть ресурс Больше информации
Родители
Значение переходного детского сада: точки зрения родителей
Посмотреть ресурс Больше информации
Откройте для себя 156 различных ресурсов, которые помогут вам администрировать и обучать TK
Перейти
Предстоящие мероприятия и тренинги
Найдите актуальный список предстоящих мероприятий и тренингов, посвященных ТЗ, от различных образовательных и политических организаций. Подпишитесь на предстоящие мероприятия и тренинги ›
8 марта 2022 г. | 8 марта 2022 г. Наверх
|