Jump to content

Ткинтер

Ткинтер
Лицензия Лицензия Python
Веб-сайт неделя .python .org /моин /ТкИнтер  Edit this on Wikidata

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.
  1. ^ «Tkinter — интерфейс Python для Tcl/Tk — документация Python v2.6.1» . Проверено 12 марта 2009 г.
  2. ^ «Ткинтер — Pythoninfo Wiki» .
  3. ^ tkinter — интерфейс Python для Tcl/Tk — документация Python 3.9.10
  4. ^ Шипман, Джон В. (12 декабря 2010 г.), Справочник по Tkinter: графический интерфейс для Python , Технический компьютерный центр Нью-Мексико , получено 11 января 2012 г.
  5. ^ «Ткинтер — Tkinter Wiki» . Архивировано из оригинала 13 ноября 2013 г. Проверено 13 ноября 2013 г.
  6. ^ «Проблема Python № 2983, «Поддержка Ttk для Tkinter» » .
  7. ^ «Редакция Python Subversion 69051, которая устраняет проблему № 2983 путем добавления модуля ttk» .
  8. ^ «Виджеты Tkinter ttk — Учебник по Python» . КодерыLegacy . Проверено 13 января 2022 г.
  9. ^ «Справочник по Tkinter 8.5: графический интерфейс для Python» .
  10. ^ Флек, Дэн. «Tkinter — графические интерфейсы на Python» (PDF) . CS112 . Университет Джорджа Мейсона . Проверено 18 августа 2018 г.
  11. ^ Кляйн, Бернд. «Программирование графического пользовательского интерфейса на Python: события и привязки» . www.python-course.eu . Проверено 18 августа 2018 г.
  12. ^ «PEP 397 — средство запуска Python для Windows — Python.org» . Проверено 7 июня 2017 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 780a9faa356efb9d4b9e73591c6e65b3__1719112500
URL1:https://arc.ask3.ru/arc/aa/78/b3/780a9faa356efb9d4b9e73591c6e65b3.html
Заголовок, (Title) документа по адресу, URL1:
Tkinter - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)