Ткинтер - Tkinter
Ткинтер это Python привязка к Тк GUI Инструментарий. Это стандартный интерфейс Python для набора инструментов Tk GUI,[1] и является Python де-факто стандарт GUI.[2] Tkinter входит в стандартную Linux, Майкрософт Виндоус и Mac OS X устанавливает Python.
Название Ткинтер происходит от Тк интерфейс. Tkinter был написан Фредриком Лундом.[3]
Tkinter - это свободное программное обеспечение выпущен под Лицензия Python.[4]
Описание
Как и большинство других современных привязок Tk, Tkinter реализован как оболочка Python вокруг полного Tcl интерпретатор, встроенный в интерпретатор Python. Вызовы Tkinter переводятся в команды Tcl, которые передаются этому встроенному интерпретатору, что позволяет смешивать Python и Tcl в одном приложении.
Доступно несколько популярных альтернативных библиотек с графическим интерфейсом, например wxPython, PyQt, PySide, Pygame, Пиглет, и PyGTK.
Некоторые определения
Окно
Этот термин имеет разные значения в разных контекстах, но в целом он относится к прямоугольной области где-то на экране дисплея пользователя.
Окно верхнего уровня
Окно, которое существует независимо на экране. Его украсит стандартная рамка и элементы управления для рабочего стола менеджера. Его можно перемещать по рабочему столу и, как правило, изменять размер.
Виджет
Общий термин для любых строительных блоков, составляющих приложение в графическом пользовательском интерфейсе.
- Основные виджеты: контейнеры: фрейм, фрейм-этикетка, верхний уровень, окно с панорамированием. Кнопки: button, radiobutton, checkbutton (checkbox), and menubutton. Текстовые виджеты: метка, сообщение, текст. Виджеты ввода: масштаб, полоса прокрутки, список, ползунок, счетчик, запись (однострочный), опционное меню, текст (многострочный) и холст (векторная и пиксельная графика).
- Tkinter предоставляет три модуля, которые позволяют отображать всплывающие диалоговые окна: tk.messagebox (диалоговые окна с подтверждением, информацией, предупреждениями и ошибками), tk.filedialog (диалоги выбора одного файла, нескольких файлов и каталогов) и tk.colorchooser (выбор цвета) .
- Python 2.7 и Python 3.1 включают в себя "тематическую Tk" ("ttk") функциональность Tk 8.5.[5][6] Это позволяет легко тематизировать виджеты Tk, чтобы они выглядели как родная среда рабочего стола, в которой работает приложение, тем самым устраняя давнюю критику Tk (и, следовательно, Tkinter). Некоторые виджеты являются эксклюзивными для ttk, например виджеты combobox, progressbar и treeview.
Рамка
В Tkinter виджет Frame - это основная единица организации сложных макетов. Рамка - это прямоугольная область, в которой могут находиться другие виджеты.
Ребенок и родитель
Когда создается какой-либо виджет, создаются отношения родитель-потомок. Например, если вы поместите текстовую метку внутри фрейма, фрейм будет родительским для метки.
Минимальное приложение
Вот минимальное приложение Python 3 Tkinter с одним виджетом:[7] (Для Python 2 единственная разница в том, что слово "tkinter" в команде импорта будет начинаться с заглавной буквы до "Ткинтер ".)
1 #! / usr / bin / env python32 от tkinter импорт *3 корень = Тк() # Создаем корневое (базовое) окно 4 ш = метка(корень, текст="Привет мир!") # Создать этикетку со словами5 ш.паковать() # Поместите этикетку в окно6 корень.главная петля() # Запускаем цикл событий
Обработать
Создание виджета состоит из четырех этапов
- Создайте
- создать его в рамке
- Настроить
- изменить атрибуты виджетов
- Упаковка
- упакуйте его в положение, чтобы он стал виден
- Привязать
- привязать его к функции или событию. [9]
Они часто сжимаются, и их порядок может меняться.
Простое приложение
Используя объектно-ориентированную парадигму в Python, простая программа будет (требуется Tcl версии 8.6, которая по умолчанию не используется Python в MacOS):
1 #! / usr / bin / env python3 2 импорт tkinter так как тк 3 4 класс заявка(тк.Рамка): 5 6 def __в этом__(я, мастер=Никто): 7 тк.Рамка.__в этом__(я, мастер) 8 я.сетка() 9 я.createWidgets()10 11 def createWidgets(я):12 я.mondialLabel = тк.метка(я, текст='Привет мир')13 я.mondialLabel.config(bg="# 00ffff")14 я.mondialLabel.сетка()15 я.quitButton = тк.Кнопка(я, текст='Уволиться', команда=я.уволиться)16 я.quitButton.сетка()17 18 приложение = заявка()19 приложение.мастер.заглавие('Образец заявки')20 приложение.главная петля()
- линия 1:Хэшбэнг директива в средство запуска программы, что позволяет выбрать соответствующий исполняемый файл интерпретатора при самостоятельном запуске.[10]
- строка 2: Эта строка импортирует модуль tkinter в пространство имен вашей программы, но переименовывает его как tk.
- строка 4: класс приложения наследуется от класса Frame Tkinter.
- строка 6: определяет функцию, которая устанавливает фрейм
- строка 7: вызывает конструктор родительского класса Frame.
- строка 11: Определение виджетов
- строка 12: создает метку с именем MondialLabel с текстом «Hello World»
- строка 13: устанавливает голубой цвет фона MondialLabel
- строка 14: Помещает метку в приложение, чтобы она была видна с помощью метода диспетчера геометрии сетки
- строка 15: Создает кнопку с надписью «Выйти».
- строка 16: помещает кнопку в приложение. Сетка, размещение и упаковка - все это методы сделать виджет видимым.
- строка 18: здесь начинается основная программа с создания экземпляра класса Application.
- строка 19: этот вызов метода устанавливает заголовок окна как «Пример приложения».
- строка 20: запускает основной цикл приложения, ожидая событий мыши и клавиатуры.
использованная литература
- ^ «Tkinter - интерфейс Python для Tcl / Tk - документация Python v2.6.1». Получено 2009-03-12.
- ^ "Tkinter - Pythoninfo Wiki".
- ^ Шипман, Джон В. (12 декабря 2010 г.), Справка Tkinter: графический интерфейс для Python, Технический компьютерный центр Нью-Мексико, получено 2012-01-11
- ^ «Архивная копия». Архивировано из оригинал на 2013-11-13. Получено 2013-11-13.CS1 maint: заархивированная копия как заголовок (ссылка на сайт)
- ^ «Проблема Python # 2983», поддержка Ttk для Tkinter"".
- ^ «Версия Subversion Python 69051, в которой проблема № 2983 решена путем добавления модуля ttk».
- ^ «Справочник по Tkinter 8.5: графический интерфейс для Python».
- ^ Флек, Дэн. «Tkinter - графические интерфейсы на Python» (PDF). CS112. Университет Джорджа Мейсона. Получено 18 августа 2018.
- ^ Кляйн, Бернд. «Программирование графического интерфейса пользователя с помощью Python: события и привязки». www.python-course.eu. Получено 18 августа 2018.
- ^ «PEP 397 - программа запуска Python для Windows - Python.org». Получено 2017-06-07.
внешние ссылки
- ТкИнтер, Python Wiki
- Учебник по Tkinter GUI, охватывает каждый виджет индивидуально.
- Лунд, Фредрик (1999), Введение в Tkinter
- TkDocs: включает не зависящую от языка и специфичную для Python информацию, а также руководство
- Ферг, Стивен, Мышление в Ткинтере