Программирование GUI на Python (Tkinter)
Python предоставляет несколько библиотек для разработки графического интерфейса. Ниже перечислены некоторые часто используемые библиотеки Python GUI:
Tkinter:Модуль Tkinter (Tk interface) — это интерфейс к стандартному набору инструментов Tk GUI Python. Tk и Tkinter можно использовать на большинстве Unix-платформ, а также в Windows и Macintosh. В более поздних версиях Tk8.0 можно реализовать нативные стили окон и хорошо работать на подавляющем большинстве платформ.
wxPython:wxPython — это программное обеспечение с открытым исходным кодом и превосходная библиотека графического интерфейса для языка Python, позволяющая Python-программистам легко создавать полноценные, полностью функциональные пользовательские интерфейсы GUI.
Jython:Программы Jython могут быть бесшовно интегрированы с Java. За исключением некоторых стандартных модулей, Jython использует модули Java. Jython имеет почти все модули стандартного Python, которые не зависят от языка C. Например, пользовательский интерфейс Jython будет использовать Swing, AWT или SWT. Jython можно динамически или статически компилировать в байт-код Java.
Программирование на Tkinter
Tkinter — это стандартная библиотека GUI для Python. Python может использовать Tkinter для быстрого создания GUI-приложений.
Поскольку Tkinter встроен в установочный пакет Python, при условии, что Python установлен, вы можете импортировать библиотеку Tkinter. Кроме того, IDLE также написан на Tkinter, и Tkinter по-прежнему легко справляется с простыми графическими интерфейсами.
Примечание: В версии Python3.x используется имя библиотеки tkinter, то есть первая буква T — строчная.
import tkinter
Создание GUI-программы
- 1. Импортируйте модуль Tkinter
- 2. Создайте виджет
- 3. Укажите master этого виджета, т.е. к какому виджету относится этот виджет
- 4. Сообщите GM (менеджеру геометрии), что виджет был создан
Пример (Python3.x)
Пример (Python2.x)
Результат выполнения приведённого выше кода показан на рисунке ниже:
Пример
Результат выполнения приведённого выше кода показан на рисунке ниже:
Виджеты Tkinter
Tkinter предоставляет различные элементы управления, такие как кнопки, метки и текстовые поля, используемые в GUI-приложении. Эти элементы управления часто называют виджетами или компонентами.
В настоящее время существует 15 виджетов Tkinter. Мы представляем эти виджеты и краткое введение в следующей таблице:
| Виджет | Описание |
|---|---|
| Кнопка | Виджет Button; отображает кнопку в программе. |
| Canvas | Виджет Canvas; отображает графические элементы, такие как линии или текст |
| Checkbutton | Виджет Checkbutton; используется для создания полей множественного выбора в программе |
| Entry | Виджет Entry; используется для отображения простого текстового содержимого |
| Фрейм | Виджет Frame; отображает прямоугольную область на экране, в основном используется как контейнер |
| Label | Виджет Label; может отображать текст и битовые карты |
| Список | Виджет Listbox; оконный виджет Listbox используется для отображения пользователю списка строк |
| Кнопка меню | Виджет Menubutton; используется для отображения пунктов меню |
| Меню | Виджет Menu; отображает панель меню, раскрывающиеся меню и всплывающие меню |
| Сообщение | Виджет Message; используется для отображения многострочного текста, аналогично Label |
| Радиокнопка | Виджет Radiobutton; отображает состояние кнопки с одиночным выбором |
| Масштаб | Виджет Scale; отображает числовую шкалу, предоставляя числовой интервал с ограниченным диапазоном для вывода |
| Scrollbar | Виджет Scrollbar; используется, когда содержимое превышает видимую область, например listbox. |
| Текст | Виджет Text; используется для отображения многострочного текста |
| Toplevel | Виджет Toplevel; используется для создания отдельного диалога, аналогичного Frame |
| Spinbox | Виджет Spinbox; похож на Entry, но позволяет задавать диапазон входных значений |
| PanedWindow | PanedWindow — это плагин управления компоновкой окон, который может содержать один или несколько дочерних виджетов. |
| LabelFrame | labelframe — это простой контейнерный виджет. Часто используется для сложных компоновок окон. |
| tkMessageBox | Используется для отображения окна сообщения для вашего приложения. |
Стандартные атрибуты
Стандартные атрибуты — это общие атрибуты всех виджетов, такие как размер, шрифт, цвет и т. д.
| Attribute | Описание |
| Измерение | Размер виджета; |
| Цвет | Цвет виджета; |
| Font | Шрифт виджета; |
| Якорь | Якорь; |
| Рельеф | Стиль виджета; |
| Битовая карта | Битовая карта; |
| Cursor | Курсор; |
Управление геометрией
Виджеты Tkinter имеют специальные методы управления геометрическим состоянием, управляющие организацией всей области виджета. Ниже перечислены классы управления геометрией, предоставляемые Tkinter: pack, grid, place
| Метод геометрии | Описание |
| pack() | Pack; |
| grid() | Grid; |
| place() | Place; |