Ткинтер - 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 корень.главная петля() 						# Запускаем цикл событий

[8]

Обработать

Создание виджета состоит из четырех этапов

Создайте
создать его в рамке
Настроить
изменить атрибуты виджетов
Упаковка
упакуйте его в положение, чтобы он стал виден
Привязать
привязать его к функции или событию. [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: запускает основной цикл приложения, ожидая событий мыши и клавиатуры.

использованная литература

  1. ^ «Tkinter - интерфейс Python для Tcl / Tk - документация Python v2.6.1». Получено 2009-03-12.
  2. ^ "Tkinter - Pythoninfo Wiki".
  3. ^ Шипман, Джон В. (12 декабря 2010 г.), Справка Tkinter: графический интерфейс для Python, Технический компьютерный центр Нью-Мексико, получено 2012-01-11
  4. ^ «Архивная копия». Архивировано из оригинал на 2013-11-13. Получено 2013-11-13.CS1 maint: заархивированная копия как заголовок (ссылка на сайт)
  5. ^ «Проблема Python # 2983», поддержка Ttk для Tkinter"".
  6. ^ «Версия Subversion Python 69051, в которой проблема № 2983 решена путем добавления модуля ttk».
  7. ^ «Справочник по Tkinter 8.5: графический интерфейс для Python».
  8. ^ Флек, Дэн. «Tkinter - графические интерфейсы на Python» (PDF). CS112. Университет Джорджа Мейсона. Получено 18 августа 2018.
  9. ^ Кляйн, Бернд. «Программирование графического интерфейса пользователя с помощью Python: события и привязки». www.python-course.eu. Получено 18 августа 2018.
  10. ^ «PEP 397 - программа запуска Python для Windows - Python.org». Получено 2017-06-07.

внешние ссылки