Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Введение в Tkinter. Разработка графических интерфейсов в Python

Покупка
Новинка
Артикул: 844137.01.99
Доступ онлайн
500 ₽
В корзину
Рассмотрены примеры создания приложений с графическим интерфейсом с помощью библиотеки Tkinter. Приведены необходимые сведения по стандарт-ным графическим компонентам, описана технология работы с ними. Для оценки уровня усвоения студентами пройденного материала предложены варианты заданий для самостоятельной работы. Предназначено для бакалавров направлений подготовки 09.03.02 «Информационные системы и технологии», 22.03.01 «Материаловедение и технологии материалов», 28.03.02 «Наноинженерия», 18.03.01 «Химическая технология», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности». Подготовлено на кафедре информатики и прикладной математики.
Титов, А. Н. Введение в Tkinter. Разработка графических интерфейсов в Python : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева ; Минобрнауки России, Казан. нац. исслед. технол. ун-т. - Казань : КНИТУ, 2023. - 100 с. - ISBN 978-5-7882-3340-6. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2172665 (дата обращения: 06.10.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации 
Казанский национальный исследовательский 
технологический университет 
А. Н. Титов, Р. Ф. Тазиева 
ВВЕДЕНИЕ В TKINTER
РАЗРАБОТКА ГРАФИЧЕСКИХ
ИНТЕРФЕЙСОВ В PYTHON  
Учебно-методическое пособие
Казань 
Издательство КНИТУ 
2023 


УДК 004.514(075) 
ББК 32.97я7 
Т45 
Печатается по решению редакционно-издательского совета  
Казанского национального исследовательского технологического университета 
Рецензенты: 
д-р пед. наук, доц. Ю. В. Торкунова 
канд. экон. наук, доц. О. С. Семичева 
Т45 
Титов А. Н. 
Введение в Tkinter. Разработка графических интерфейсов в Python : 
учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева; Минобрнауки России, Казан. нац. исслед. технол. ун-т. – Казань : Изд-во 
КНИТУ, 2023. – 100 с. 
ISBN 978-5-7882-3340-6 
Рассмотрены примеры создания приложений с графическим интерфейсом 
с помощью библиотеки Tkinter. Приведены необходимые сведения по стандартным графическим компонентам, описана технология работы с ними. Для оценки 
уровня усвоения студентами пройденного материала предложены варианты заданий для самостоятельной работы. 
Предназначено для бакалавров направлений подготовки 09.03.02 «Информационные системы и технологии», 22.03.01 «Материаловедение и технологии материалов», 28.03.02 «Наноинженерия», 18.03.01 «Химическая технология», 
29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности». 
Подготовлено на кафедре информатики и прикладной математики. 
УДК 004.514(075) 
ББК 32.97я7 
ISBN 978-5-7882-3340-6 
© Титов А. Н., Тазиева Р. Ф., 2023 
© Казанский национальный исследовательский 
технологический университет, 2023 
2


О Г Л А В Л Е Н И Е
Введение 
........................................................................................................ 4
1. ЭТАПЫ СОЗДАНИЯ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ................. 6
2. СОЗДАНИЕ ПРОСТОГО GUI-ПРИЛОЖЕНИЯ НА TKINTER 
......... 7
3. РАБОТА С ВИДЖЕТАМИ В TKINTER ............................................. 12
4. ВИДЖЕТ LABEL 
................................................................................... 14
5. ВИДЖЕТ BUTTON 
................................................................................ 28
6. ВИДЖЕТ ENTRY .................................................................................. 34
7. ВИДЖЕТ TEXT 
...................................................................................... 42
8. МЕТОД PACK() ..................................................................................... 48
9. МЕТОД GRID() ...................................................................................... 56
10. МЕТОД PLACE 
.................................................................................... 62
11. SCROLLBAR ........................................................................................ 65
12. RADIOBUTTON И CHECKBUTTON 
................................................ 69
13. МОДУЛЬ TKMESSAGEBOX 
............................................................. 81
14. ВИДЖЕТ SCALE ................................................................................. 84
15. ВИДЖЕТ COMBOBOX 
....................................................................... 86
16. ВИДЖЕТ MENU .................................................................................. 88
17. ВИДЖЕТ NOTEBOOK 
........................................................................ 90
18. МОДУЛЬ FILEDIALOG 
...................................................................... 92
Задания для самостоятельной работы ..................................................... 96
Литература .................................................................................................. 99
3 


В В Е Д Е Н И Е
Для большинства программных систем графический интерфейс 
пользователя (Graphical User Interface, GUI) является неотъемлемой частью приложения. Все пользователи, работающие на компьютере, знакомы с такими графическими элементами, как окна, кнопки, текстовые 
поля, полосы прокрутки и т. д., используемыми при работе с программами. Большая часть работы с компьютерами сегодня осуществляется 
с помощью того или иного графического интерфейса вида point-and-click. 
Программы, от веб-браузера до системных инструментов, стандартно 
оснащаются компонентами GUI, повышающими гибкость и простоту их 
использования. В Python есть несколько GUI-фреймворков (framework – 
программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта), однако 
только Tkinter встроен в стандартную библиотеку языка. Tkinter (Tk interface) – кроссплатформенная библиотека, поэтому можно создавать приложения для различных операционных систем. 
Визуальные элементы отображаются через собственные элементы текущей операционной системы, поэтому приложения, созданные с помощью Tkinter, выглядят так, как будто они принадлежат той 
платформе, на которой работают. 
Tkinter – событийно-ориентированная библиотека, разработанная Гвидо ван Россумом – создателем языка Python. С ее помощью 
можно написать простой и в то же время функциональный интерфейс 
для проекта на Python. Это фактически пакет, предназначенный для работы с библиотекой Tk. Библиотека Tk содержит компоненты графического интерфейса пользователя, написанные на языке программирования Tcl.  
Хотя Tkinter является популярным GUI-фреймворком на Python, 
у него есть свои недостатки. Один из них заключается в том, что графические интерфейсы, созданные с использованием Tkinter, выглядят 
примитивными. Для создания современного, броского интерфейса есть 
модуль PyQt5. 
Тем не менее в плане использования Tkinter является относительно легким по сравнению с другими библиотеками. Это отличный 
выбор для создания GUI-приложений в Python, особенно если 
4 


современный облик для программы не в приоритете, а большую роль 
играет функциональность и кроссплатформенная скорость. 
В настоящее время появилась достаточна обширная литература 
по созданию GUI. Авторы поставили перед собой цель: собрать имеющуюся в их распоряжении информацию по работе в Tkinter и переработать ее с учетом тех типов задач, которые решаются в преподаваемых 
коллективом их кафедры дисциплинах: «Программирование», «Проектирование графических и пользовательских интерфейсов». Авторы 
надеются облегчить восприятие изложенного материала, снабдив пособие большим количеством примеров и пояснений к ним. 
Пособие включает в себя 18 глав, в каждой из которых показана 
работа с определенным графическим элементом: текстовыми метками 
label, кнопками button, однострочными и многострочными текстовыми 
полями entry и text, переключателями и флажками radiobutton и checkbox, полосами прокрутками и шкалами scrollbar и scale, разделами меню 
menu. Для группировки объектов рассмотрена работа с такими виджетами, как frame, notebook. Приведен синтаксис создания графического 
элемента, описаны атрибуты виджета, его назначение, события, которые поддерживаются виджетом. Показаны особенности размещения 
объектов в главном окне с использованием методов pack(), place(), 
grid(). Кроме стандартных компонентов управления, в пособии рассмотрена работа с диалоговыми окнами для поддержки работы с каталогами и файлами при их открытии и сохранении, диалоговые окна для 
управления шрифтом, цветом. С помощь модуля tkMessageBox можно 
получить доступ к ряду встроенных окон для различных ситуаций, 
отображения некоторой информации, ошибок и предупреждений.  
Материал, изложенный в пособии, может быть использован при 
проведении лабораторных занятий по преподаваемым кафедрой информатики и прикладной математики дисциплинам. Используемая в пособии версия – Tkinter 8.6. 
5 


.  Э Т А П Ы  С О З Д А Н И Я  Г Р А Ф И Ч Е С К О Г О
И Н Т Е Р Ф Е Й С А  
Под графическим интерфейсом пользователя (GUI) подразумеваются все те окна, кнопки, текстовые поля для ввода, полосы прокрутки, 
списки, радиокнопки, флажки и др., которые отображаются на экране 
при открытии того или иного приложения. С их помощью происходит 
взаимодействие с программой и управление ею. 
Все эти элементы интерфейса вместе называют виджетами 
(widgets). В Python для создания графических интерфейсов на основе 
компоновки элементов управления (виджетов) предназначена библиотека Tkinter. Если ее импортировать в программу (скрипт), то можно 
пользоваться ее компонентами, создавая графический интерфейс. 
Этапы разработки интерфейса с GUI следующие: 
– импорт библиотеки;
– создание главного окна;
– создание виджетов;
– установка их свойств;
– определение событий;
– определение обработчиков событий;
– расположение виджетов на главном окне;
– отображение главного окна.
6 


.  С О З Д А Н И Е  П Р О С Т О Г О  G U I - П Р И Л О Ж Е Н И Я  
Н А  T K I N T E R  
Сначала создадим окно с одним виджетом. Запустим среду разработки IDLE Python. Первым делом необходимо импортировать модуль Tkinter. Далее приведены три способа импорта: 
import tkinter as tk   
from tkinter import * 
from tkinter.ttk import * 
В пособии чаще всего будет использоваться второй способ, что 
позволит не указывать каждый раз имя модуля при обращении к объектам, которые в нем содержатся. 
Модуль ttk обладает большей функциональностью относительно 
стилизации объектов, однако он не полностью совместим с объектами 
tkinter. В рамках данного учебного пособия будет показано, как работать с виджетами обоих модулей. 
Главным элементом GUI Tkinter является окно. Окнами называют контейнеры, в которых находятся все GUI-элементы, которые 
называются виджетами. Виджет – это элемент графического пользовательского интерфейса, который отображает/иллюстрирует информацию или дает пользователю возможность взаимодействовать с ОС. 
К числу виджетов относятся текстовые поля, текстовые метки, кнопки, 
выпадающие списки, меню и другие элементы.  
Окно, или window, является экземпляром класса Tkinter. Корневое окно является основным окном приложения в программе. У него 
присутствуют заголовок и границы, реализованные менеджером окон. 
Корневое окно необходимо создавать для любых виджетов. Создадим 
корневое (root) окно. Объект окна верхнего уровня создается при обращении к классу Tk модуля tkinter: root = Tk(). 
При выполнении указанного кода в среде IDLE на экране появится новое окно. То, как оно будет выглядеть, зависит от операционной системы. Как оно выглядит в Windows – см. на рис. 2.1. 
Параметры окна можно настроить. Например, можно сделать так, 
чтобы размер окна оставался постоянным: root.resizable(width=False, 
height=False) – делаем неизменными ширину и высоту окна. Теперь 
можно задать тот размер, который нам нужен, например 300×200: root.geometry('300x200'). Окну можно присвоить имя: root.title('Корневое окно'). 
7 


 
Рис. 2.1. Корневое окно в среде IDLE 
Примеры настройки основных параметров окна представлены 
в табл. 2.1. 
Таблица 2.1 
Методы и атрибуты настройки параметров окна 
Пример метода 
Пояснение 
Ширина × высота + вправо + вниз 
root.geometry("300x250+40+20") 
Задает ширину и высоту окна, его смещение от верхнего левого угла экрана 
root.geometry() 
Возвращает параметры окна 
root.resizable(False, False) 
Задает возможность растягивать окно по 
ширине и высоте 
root.minsize(200,150) 
Задает минимальный размер окна 
root.maxsize(400,300) 
Задает максимальный размер окна 
root.title("Мое приложение") 
Задает заголовок 
окно.config(cursor='umbrella') 
Задает тип курсора 
icon = PhotoImage(file = "f.png") 
root.iconphoto(False, icon) 
Задает рисунок иконки 
root['bg']='green' 
Задает цвет формы 
root.attributes("-fullscreen", True) 
Задает полноэкранный режим отображения окна 
root.attributes("-alpha", 0.5) 
Задает уровень прозрачности 
root.attributes("-toolwindow", True) 
Отключение верхней панели окна 
8 


С помощью метода attributes() можно установить отдельные атрибуты окна, для которых нет специальных методов. В качестве первого параметра метод принимает название атрибута, которое предваряется дефисом. Второй параметр –  значение для этого атрибута. Например, можно растянуть окно на весь экран, передав атрибуту fullscreen 
значение True: root.attributes("-fullscreen", True), или отключить верхнюю панель окна (за исключением заголовка и крестика для закрытия): 
root.attributes("-toolwindow", True).  
 
Рис. 2.2. Окно с отключенной верхней панелью 
Рассмотрим задание характеристик главного окна на примере. 
Изменим форму курсора для окна с помощью метода config: 
root.config(cursor=umbrella): 
from tkinter import * 
root = Tk() 
root.resizable(width=False, height=False) 
root.geometry('300x200') 
root.title('Корневое окно') 
root.wm_attributes('-alpha',0.8) 
root ['bg']='green' 
root.config(cursor='umbrella') 
root.mainloop() 
Результат выполнения кода представлен на рис. 2.3. 
 
Рис. 2.3. Окно с примененными настройками 
Теперь внутри окна курсор будет иметь форму зонтика. Некоторые 
другие возможные значения атрибута cursor: boat, circle, clock, coffee_mug, 
cross, crosshair, diamond_cross, dot, dotbox, double_arrow, heart, icon, 
mouse, pencil, pirate, sailboat, shuttle, spider, star, top_tee, watch. 
9 


Можно задать смещение от верхней левой точки экрана на заданное количество пикселей по осям X и Y, например: root.geometry('600x400+200+100'). Окно будет располагаться на 200 пикселей 
вправо и на 100 пикселей вниз от левого угла экрана. Если оба значения 
отрицательны, то отсчет происходит от нижних правых углов экрана 
и окна. Возможна комбинация положительного и отрицательного значений. Так, команда root.geometry("280x200+0-0") помещает окно в левый нижний угол экрана. 
Перед заголовком окна установлена иконка. По умолчанию это 
перо. Можно заменить ее на любую другую иконку с помощью метода 
iconbitmap(): root.iconbitmap('D://Рабочий стол//VietNam.ico'). Результат замены иконки показан на рис. 2.4. 
Рис. 2.4. Окно с измененной иконкой 
Если в качестве иконки необходимо задать файл с расширением 
.png, то это можно сделать таким образом: 
from tkinter import * 
root=TK() 
image1=PhotoImage(file='Sunrise.png') 
root.iconphoto(False, image1) 
root.mainloop() 
В последнем случае не передан путь к иконке, так как файл с ней 
располагался в одной папке с файлом приложения.  
Первый параметр метода iconphoto() указывает, надо ли использовать иконку по умолчанию для всех окон приложения. Второй параметр – объект PhotoImage, который устанавливает файл изображения 
(здесь файл 'Sunrise.png'). Если необходимо окно без иконки, можно 
определить и подключить прозрачную иконку. Можно это сделать 
также динамически без наличия реального файла: 
from tkinter import * 
import tempfile, base64, zlib 
# создание в памяти временного файла с иконкой 
ICON=zlib.decompress(base64.b64decode 
("eJxjYGAEQgEBBiDJwZDBysAgxsDAoAHEQCEGBQaIOAg4s
DIgACMUj4JRMApGwQgF/ykEAFXxQRc=")) 
10 


Доступ онлайн
500 ₽
В корзину