Python — универсальный язык программирования, который можно использовать для реализации различных типов приложений. Он имеет множество типов модулей для создания приложений на основе графического пользовательского интерфейса (GUI). Python tkinter — один из них. Любое настольное приложение можно легко реализовать с помощью модуля tkinter. Будет лучше, если у вас есть базовые знания программирования на Python, чтобы изучить использование модуля Python tkinter. В этом руководстве показаны различные варианты использования модуля Python tkinter для создания приложений с графическим интерфейсом.
Установите модуль Tkinter
Модуль tkinter не установлен в Python по умолчанию. Итак, вам нужно запустить следующую команду, чтобы установить модуль tkinter в версии Python 3+:
$ судо подходящий установить python3-tk
Различные виджеты Tkinter
Модуль tkinter содержит различные виджеты для разных целей.
Имя виджета | Цель |
Этикетка | Он используется для отображения справочного сообщения для пользователя. |
Кнопка | Он используется для добавления различных кнопок в приложении. |
Рамка | Он работает как контейнер виджетов, содержащий различные типы виджетов для создания организованной формы. |
Вход | Он используется для получения однострочного текста от пользователя. |
Кнопка проверки | Он используется для добавления кнопок флажков для получения от пользователя нескольких входных данных из нескольких вариантов. |
Переключатель | Он используется для добавления переключателей, позволяющих получить от пользователя один ввод из нескольких вариантов. |
Кнопка со списком | Он используется для добавления раскрывающегося списка, позволяющего получить от пользователя один ввод из нескольких вариантов. |
СписокСписок | Он используется для добавления списка для получения от пользователя нескольких входных данных из нескольких вариантов. |
Текст | Он используется для получения от пользователя многострочного текста. |
Сообщение | Он используется для отображения окна сообщений для пользователя. |
Полоса прокрутки | Он используется для добавления полосы прокрутки в окно для прокрутки окна вверх и вниз. |
Кнопка меню | Он используется для отображения меню пользователю. |
Меню | Он используется для отображения пунктов меню пользователю. |
ПанедОкно | Он работает как контейнер виджетов, содержащий горизонтальные и вертикальные панели. |
Вкладки | Он используется для добавления окна вкладки в приложение. |
Различные примеры Tkinter
Использование некоторых распространенных виджетов tkinter показано в следующих примерах.
Пример 1. Создание простого приложения с графическим интерфейсом
Создайте файл Python со следующим содержимым, который отображает диалоговое окно в центре экрана с заголовком и определенной высотой и шириной:
#Импортируем необходимый модуль
из импорта tkinter *
#Создаем объект для окна
tkobj = Тк ( )
#Устанавливаем заголовок окна
tkobj.title ( «Изучите модуль tkinter» )
#Устанавливаем высоту и ширину окна
tkobj.geometry ( '300x150' )
#Устанавливаем положение окна по центру
tkobj.eval ( 'tk::PlaceWindow . центр' )
#Запускаем Tkinter
tkobj.mainloop ( )
Выход:
Следующий вывод появляется после выполнения сценария. Отображается диалоговое окно с заголовком «Изучить модуль tkinter»:
Пример 2. Использование метки и кнопки
Создайте файл Python с помощью следующего сценария, который отображает окно с меткой и диалоговое окно:
#Импортируем необходимый модульиз импорта tkinter *
#Создаем объект для окна
tkobj = Тк ( )
#Устанавливаем заголовок окна
tkobj.title ( «Изучите модуль tkinter» )
#Устанавливаем высоту и ширину окна
tkobj.geometry ( '400х150' )
#Определяем объект метки
lbl = Метка ( ткобж, текст '=' «Это простое окно» )
#Добавляем метку в окно
фунт.упак. ( iPadX '=' 30 , айпады '=' двадцать )
#Определяем объект кнопки
кнопка = Кнопка ( ткобж, текст '=' 'Нажми на меня' )
#Добавляем кнопку в окно с позицией
btn.pack ( iPadX '=' 30 , айпады '=' 10 )
#Устанавливаем положение окна по центру
tkobj.eval ( 'tk::PlaceWindow . центр' )
#Запускаем Tkinter
tkobj.mainloop ( )
Выход:
После выполнения скрипта в центре экрана появляется окно с надписью и кнопкой.
Пример 3. Установите цвет шрифта и цвет фона
Создайте файл Python с помощью следующего сценария, который отображает окно с меткой и цветной кнопкой. Здесь атрибут фона используется для установки цвета фона кнопки, а атрибут переднего плана используется для установки цвета шрифта кнопки:
#Импортируем необходимый модульиз импорта tkinter *
#Создаем объект для окна
tkobj = Тк ( )
#Устанавливаем заголовок окна
tkobj.title ( «Изучите модуль tkinter» )
#Устанавливаем высоту и ширину окна
tkobj.geometry ( '400х150' )
#Определяем объект метки
lbl = Метка ( ткобж, текст '=' «Установить цвет фона и переднего плана» )
#Добавляем метку в окно
фунт.упак. ( iPadX '=' 30 , айпады '=' двадцать )
#Определить объект кнопки с цветом фона и переднего плана
кнопка = Кнопка ( ткобж, текст '=' 'Нажми на меня' , фон '=' 'синий' , передний план '=' 'красный' )
#Добавляем кнопку в окно с позицией
btn.pack ( iPadX '=' 30 , айпады '=' 8 )
#Устанавливаем положение окна по центру
tkobj.eval ( 'tk::PlaceWindow . центр' )
#Запускаем Tkinter
tkobj.mainloop ( )
Выход:
После выполнения скрипта появляется следующее окно:
Пример 4: Использование фрейма
В следующем скрипте Python метка и две кнопки отображаются внутри виджета рамки. Создайте файл Python со сценарием, чтобы проверить вывод:
#Импортируем необходимый модульиз импорта tkinter *
#Создаем объект для окна
tkobj = Тк ( )
#Устанавливаем заголовок окна
tkobj.title ( «Модуль Ткинтера» )
#Устанавливаем высоту и ширину окна
tkobj.geometry ( '250x100' )
#Определение объектов фрейма
фрм = Кадр ( ткобж )
frm.pack ( )
lframe = Кадр ( ткобж )
lframe.pack ( сторона =ЛЕВО )
rframe = Рамка ( ткобж )
rframe.pack ( сторона =ПРАВО )
#Определяем метку внутри рамки
lbl = Метка ( от, текст '=' «Использование фрейма» , фг '=' 'синий' )
фунт.упак. ( )
#Определяем кнопки внутри рамки
btn1 = Кнопка ( лфрейм, текст '=' '' , фг '=' 'черный' , бг '=' 'белый' )
btn2.pack ( сторона =ПРАВО )
#Устанавливаем положение окна по центру
tkobj.eval ( 'tk::PlaceWindow . центр' )
#Запускаем Tkinter
tkobj.mainloop ( )
Выход:
После выполнения скрипта появится следующий вывод:
Пример 5: Обработка события кнопки
Использование окна сообщения показано в следующем сценарии. Окно сообщения отображается при нажатии кнопки:
#Импортируем необходимые модулииз импорта tkinter *
из окна сообщения импорта tkinter
#Создаем объект для окна
tkobj = Тк ( )
#Устанавливаем заголовок окна
tkobj.title ( «Изучите модуль tkinter» )
#Устанавливаем высоту и ширину окна
tkobj.geometry ( '400x150' )
#Определяем функцию для отображения окна сообщения
дисплей определенности ( ) :
messagebox.showinfo ( 'Информация' , «Кнопка нажата». )
#Создайте текст метки с цветом, стилем и положением шрифта
Этикетка ( ткобж, текст '=' «Настольное приложение, использующее tkinter». , фг '=' 'зеленый' ) .пакет ( Пэдди '=' 25 )
#Создаем кнопку с обработчиком кнопки
Кнопка ( ткобж, текст '=' «Показать сообщение» , команда = дисплей ) .пакет ( )
#Устанавливаем положение окна по центру
tkobj.eval ( 'tk::PlaceWindow . центр' )
#Запускаем Tkinter
tkobj.mainloop ( )
Выход:
После выполнения скрипта появляется следующее окно:
После нажатия кнопки появляется следующее окно сообщения:
Пример 6: получение данных от пользователя
В модуле tkinter доступно несколько виджетов, которые принимают вводимые пользователем данные. Использование наиболее распространенных виджетов показано в следующем сценарии. Создайте файл Python со следующим кодом, чтобы проверить вывод:
#Импортируем необходимые модулииз импорта tkinter *
из tkinter.ttk импортировать Combobox
из tkinter импортировать ttk
импортировать Ткинтер как ТС
из окна сообщения импорта tkinter
#Создаем объект tkinter
tkobj = Тк ( )
#Устанавливаем заголовок окна
tkobj.title ( «Форма информации о пользователе» )
#Установим высоту и ширину окна
tkobj.geometry ( '550x320' )
#Определяем функцию для отображения значений формы
защита display_values ( ) :
#Читать однострочный текст
имя = 'Имя : ' + name_val.get ( ) + ' \п '
#Читаем выбранное значение переключателя
если пол.получить ( ) == 1 :
г = 'Мужской'
еще:
г = 'Женский'
г = 'Пол : ' + г + ' \п '
#Читаем выбранные значения флажка
игра = ''
если g1.get ( ) == 1 :
игра = 'Крикет'
если g2.get ( ) == 1 :
если игра ! '=' '' :
игра += ', ' + 'Футбол'
еще:
игра = 'Футбол'
если g3.get ( ) == 1 :
если игра ! '=' '' :
игра += ', ' + 'Баскетбол'
еще:
игра = 'Баскетбол'
игра = 'Игра : ' + игра + ' \п '
#Читаем значения поля со списком
страна = 'Страна : ' + странаVal.get ( ) + ' \п '
#Читаем многострочный текст
адрес = 'Адрес : ' + адрес.get ( '1,0' , 'конец' ) + ' \п '
#Объединяем все значения, полученные в полях
form_values = имя + г + игра + страна + адрес
#Отображение значений в окне сообщения
messagebox.showinfo ( «Информация о пользователе» , значения_формы )
#Создаем метку и поле имени
Этикетка ( ткобж, текст '=' 'Имя : ' ) .место ( Икс '=' 100 , и '=' двадцать )
name_val = StringVar ( )
ttk.Entry ( ткобж, текстовая переменная =имя_значение ) .пакет ( Пакс '=' 220 , Пэдди '=' двадцать )
#Создаем метку и переключатель
Этикетка ( ткобж, текст '=' 'Пол : ' ) .место ( Икс '=' 100 , и '=' 60 )
пол = IntVar ( )
пол.набор ( 1 )
Переключатель ( ткобж, текст '=' 'Мужской' , переменная = пол, ценить '=' 1 ) .место ( Икс '=' 210 , и '=' 60 )
Переключатель ( ткобж, текст '=' 'Женский' , переменная = пол, ценить '=' 2 ) .место ( Икс '=' 290 , и '=' 60 )
#Создаем метку и кнопку-флажок
Этикетка ( ткобж, текст '=' «Любимая игра:» ) .место ( Икс '=' 100 , и '=' 100 )
g1 = IntVar ( )
g2 = ЦелаяПеременная ( )
g3 = IntVar ( )
Кнопка проверки ( ткобж, текст '=' 'Крикет' , переменная =g1 ) .место ( Икс '=' 210 , и '=' 100 )
Кнопка проверки ( ткобж, текст '=' 'Футбол' , переменная =g2 ) .место ( Икс '=' 290 , и '=' 100 )
Кнопка проверки ( ткобж, текст '=' 'Баскетбол' , переменная =g3 ) .место ( Икс '=' 380 , и '=' 100 )
#Определяем значения кортежа
данные = ( «Бангладеш» , 'Япония' , 'США' )
#Создаем метку и поле со списком
Этикетка ( ткобж, текст '=' 'Страна : ' ) .место ( Икс '=' 100 , и '=' 140 )
странаВал = StringVar ( )
Поле со списком ( ткобж, ценности = данные, текстовая переменная =countryVal ) .место ( Икс '=' 220 , и '=' 140 )
#Создаем метку и текстовое поле
Этикетка ( ткобж, текст '=' 'Адрес : ' ) .место ( Икс '=' 100 , и '=' 180 )
адрес = ( тк.Текст ( ткобж, высота '=' 3 , ширина '=' двадцать ) )
адрес.место ( Икс '=' 220 , и '=' 180 )
#Создаем кнопку с обработчиком кнопки
Кнопка ( ткобж, текст '=' 'Представлять на рассмотрение' , команда =display_values ) .место ( Икс '=' 250 , и '=' 250 )
#Запускаем Tkinter
tkobj.mainloop ( )
Выход:
После выполнения скрипта появляется следующее окно:
Заполните поля формы и нажмите кнопку «Отправить».
Появится следующее окно сообщения с отправленными значениями:
Заключение
Методы использования модуля Python tkinter для создания приложений с графическим интерфейсом показаны в этом руководстве на нескольких примерах.