Ткинтер
![]() Редактор IDLE Python | |
Лицензия | Лицензия Python |
---|---|
Веб-сайт | неделя ![]() |
Tkinter — это Python привязка к набору инструментов Tk GUI . Это стандартный интерфейс Python для набора инструментов Tk GUI. [1] графическим интерфейсом Python и является де-факто стандартным . [2] Tkinter включен в стандартные для Linux , Microsoft Windows и macOS установки Python .
Название Tkinter происходит от Tkinterface . Tkinter был написан Стин Ламхолтом и Гвидо ван Россумом . [3] затем позже отредактировано Фредриком Лундом. [4]
Tkinter — бесплатное программное обеспечение , выпущенное под лицензией Python . [5]
Описание
[ редактировать ]Как и большинство других современных привязок Tk, Tkinter реализован как оболочка Python вокруг полноценного Tcl, интерпретатора Python встроенного в интерпретатор . Вызовы Tkinter преобразуются в команды Tcl, которые передаются этому встроенному интерпретатору, что позволяет смешивать Python и Tcl в одном приложении.
Доступно несколько популярных альтернатив библиотек графического интерфейса, таких как Kivy , Pygame , Pyglet , PyGObject , PyQt , PySide и wxPython .
Некоторые определения
[ редактировать ]Окно
[ редактировать ]Этот термин имеет разные значения в разных контекстах, но в целом он относится к прямоугольной области где-то на экране дисплея пользователя.
Окно верхнего уровня
[ редактировать ]Окно, которое действует как дочерний элемент основного окна. Его украсят стандартные рамки и элементы управления для менеджера рабочего стола . Его можно перемещать по рабочему столу и обычно изменять его размер.
Виджет
[ редактировать ]Общий термин для любого из строительных блоков, составляющих приложение в графическом интерфейсе пользователя.
- Основные виджеты: Контейнеры: фрейм, рамка метки, верхний уровень, панорамное окно. Кнопки: кнопка, радиокнопка, флажок (флажок) и кнопка меню. Текстовые виджеты: метка, сообщение, текст. Виджеты ввода: масштаб, полоса прокрутки, список, ползунок, счетчик, запись (однострочная), меню параметров, текст (многострочный) и холст (векторная и пиксельная графика).
- Tkinter предоставляет три модуля, которые позволяют отображать всплывающие диалоговые окна: tk.messagebox (диалоговые окна подтверждения, информации, предупреждений и ошибок), tk.filedialog (диалоговые окна выбора одного файла, нескольких файлов и каталогов) и tk.colorchooser (выбор цвета). .
- Python 2.7 и Python 3.1 включают в себя «тематические функции Tk» («ttk») Tk 8.5. [6] [7] Это позволяет легко тематически оформлять виджеты Tk, чтобы они выглядели как собственная среда рабочего стола, в которой работает приложение, тем самым устраняя давнюю критику Tk (и, следовательно, Tkinter). Некоторые виджеты являются эксклюзивными для ttk, например поле со списком, индикатор выполнения, древовидное представление, блокнот, разделитель и размерная ручка. [8]
Рамка
[ редактировать ]В Tkinter виджет «Рамка» является базовой единицей организации сложных макетов. Рамка — это прямоугольная область, которая может содержать другие виджеты.
Ребенок и родитель
[ редактировать ]При создании любого виджета создаются отношения «родитель-потомок». Например, если вы поместите текстовую метку внутрь фрейма, фрейм станет родительским для метки.
Минимальное приложение
[ редактировать ]Вот минимальное приложение Tkinter на Python 3 с одним виджетом: [9]
#!/usr/bin/env python3
from tkinter import *
root = Tk() # Create the root (base) window
w = Label(root, text="Hello, world!") # Create a label with words
w.pack() # Put the label into the window
root.mainloop() # Start the event loop
Для Python 2 единственное отличие состоит в том, что слово «tkinter» в команде импорта будет написано с заглавной буквы «Tkinter». [10]
Процесс
[ редактировать ]Создание виджета состоит из четырех этапов. [11]
- Создавать
- создай его в рамке
- Настроить
- измените атрибуты виджетов.
- Пакет
- упакуйте его в такое положение, чтобы он стал видимым. Разработчики также имеют возможность использовать .grid() (row= int , columns= int для определения строк и столбцов для позиционирования виджета, по умолчанию — 0) и .place() (relx= int или decimal , Rely= int или decimal). , определить координаты в рамке или окне).
- Связывать
- привяжите его к функции или событию.
Они часто сжимаются, и порядок может меняться.
Простое приложение
[ редактировать ]Используя объектно-ориентированную парадигму Python, простая программа будет такой (требуется Tcl версии 8.6, которая по умолчанию не используется Python в MacOS):
#!/usr/bin/env python3
import tkinter as tk
class Application(tk.Frame):
def __init__(self, root=None):
tk.Frame.__init__(self, root)
self.grid()
self.createWidgets()
def createWidgets(self):
self.medialLabel = tk.Label(self, text='Hello World')
self.medialLabel.config(bg="#00ffff")
self.medialLabel.grid()
self.quitButton = tk.Button(self, text='Quit', command=self.quit)
self.quitButton.grid()
app = Application()
app.root.title('Sample application')
app.mainloop()
- строка 1: Hashbang директива для средства запуска программы, позволяющая выбрать соответствующий исполняемый файл интерпретатора при самозапуске. [12]
- строка 2: импортирует модуль tkinter в пространство имен вашей программы, но переименовывает его в tk.
- строка 5: Класс приложения наследуется от класса Frame Tkinter.
- строка 7: определяет функцию, устанавливающую фрейм.
- строка 8: вызывает конструктор родительского класса Frame.
- строка 12: Определение виджетов.
- строка 13: Создает метку MedialLabel с текстом «Hello World».
- строка 14: устанавливает голубой цвет фона MedialLabel.
- строка 15: Размещает метку в приложении, чтобы она была видна с помощью метода диспетчера геометрии сетки.
- строка 16: Создает кнопку с надписью «Выход».
- строка 17: Размещает кнопку в приложении. Сетка, размещение и упаковка — все это способы сделать виджет видимым.
- строка 20: Основная программа начинается здесь с создания экземпляра класса Application.
- строка 21: Этот вызов метода устанавливает заголовок окна «Пример приложения».
- строка 22: Запускает основной цикл приложения, ожидая событий мыши и клавиатуры.
См. также
[ редактировать ]- IDLE — интегрированная среда разработки на Python, написанная исключительно с использованием Tkinter.
Ссылки
[ редактировать ]- ^ «Tkinter — интерфейс Python для Tcl/Tk — документация Python v2.6.1» . Проверено 12 марта 2009 г.
- ^ «Ткинтер — Pythoninfo Wiki» .
- ^ tkinter — интерфейс Python для Tcl/Tk — документация Python 3.9.10
- ^ Шипман, Джон В. (12 декабря 2010 г.), Справочник по Tkinter: графический интерфейс для Python , Технический компьютерный центр Нью-Мексико , получено 11 января 2012 г.
- ^ «Ткинтер — Tkinter Wiki» . Архивировано из оригинала 13 ноября 2013 г. Проверено 13 ноября 2013 г.
- ^ «Проблема Python № 2983, «Поддержка Ttk для Tkinter» » .
- ^ «Редакция Python Subversion 69051, которая устраняет проблему № 2983 путем добавления модуля ttk» .
- ^ «Виджеты Tkinter ttk — Учебник по Python» . КодерыLegacy . Проверено 13 января 2022 г.
- ^ «Справочник по Tkinter 8.5: графический интерфейс для Python» .
- ^ Флек, Дэн. «Tkinter — графические интерфейсы на Python» (PDF) . CS112 . Университет Джорджа Мейсона . Проверено 18 августа 2018 г.
- ^ Кляйн, Бернд. «Программирование графического пользовательского интерфейса на Python: события и привязки» . www.python-course.eu . Проверено 18 августа 2018 г.
- ^ «PEP 397 — средство запуска Python для Windows — Python.org» . Проверено 7 июня 2017 г.
Внешние ссылки
[ редактировать ]- TkInter , Python Wiki
- Учебное пособие по графическому интерфейсу Tkinter описывает каждый виджет индивидуально.
- TkDocs : включает информацию, не зависящую от языка и специфичную для Python, а также руководство.
- Джон Шипман, ссылка на Tkinter 8.5: графический интерфейс для Python
- Ферг, Стивен, «Думая в Tkinter»