Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

Tkinter - это привязка Python к набору инструментов Tk GUI . Это стандартный интерфейс Python для набора инструментов Tk GUI, [1] и де-факто стандартный графический интерфейс Python . [2] Tkinter включен в стандартные установки Python для Linux , Microsoft Windows и Mac OS X.

Название Tkinter происходит от интерфейса Tk . Tkinter был написан Фредриком Лундом. [3]

Tkinter - бесплатное программное обеспечение, выпущенное под лицензией Python . [4]

Описание [ править ]

Как и большинство других современных привязок Tk, Tkinter реализован как оболочка Python вокруг полного интерпретатора Tcl, встроенного в интерпретатор Python. Вызовы Tkinter переводятся в команды Tcl, которые передаются этому встроенному интерпретатору, что позволяет смешивать Python и Tcl в одном приложении.

Доступно несколько популярных альтернативных библиотек с графическим интерфейсом, например wxPython , PyQt , PySide , Pygame , Pyglet и 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]

#! / usr / bin / env python3from  tkinter  import  *  # импортировать все из tkinterroot  =  Tk ()  # Создаем корневое (базовое) окноw  =  Label ( root ,  text = "Hello world!" )  # Создайте метку со словамиш . pack ()  # Поместите метку в окнокорень . mainloop ()  # Запускаем цикл обработки событий

нажмите здесь, чтобы увидеть результат этого кода

Для Python 2 единственное отличие состоит в том, что слово «tkinter» в команде импорта будет начинаться с заглавной буквы « Tkinter ». [8]

Процесс [ править ]

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

Создавать
создать его в рамке
Настроить
изменить атрибуты виджетов.
Пакет
упакуйте его на место, чтобы он стал видимым. Разработчики также могут использовать .grid () (row = int , column = int для определения строк и столбцов для позиционирования виджета, по умолчанию 0) и .place () (relx = int или decimal , rely = int или decimal , задайте координаты в кадре или окне).
Связывать
привязать его к функции или событию.

Они часто сжимаются, и их порядок может быть разным.

Простое приложение [ править ]

Используя объектно-ориентированную парадигму в Python, простая программа будет (требуется Tcl версии 8.6, которая по умолчанию не используется Python в MacOS):

#! / usr / bin / env python3импортировать  tkinter  как  tkкласс  Application ( тк . Рама ): def  __init__ ( self ,  master = None ): тк . Рамка . __init__ ( я ,  хозяин ) я . сетка ()  я . createWidgets () def  createWidgets ( self ): я . mondialLabel  =  tk . Ярлык ( self ,  text = 'Hello World' ) я . mondialLabel . config ( bg = "# 00ffff" ) я . mondialLabel . сетка () я . quitButton  =  tk . Кнопка ( self ,  text = 'Quit' ,  command = self . Quit ) я . quitButton . сетка ()app  =  Приложение ()приложение . мастер . title ( 'Образец заявки' )приложение . mainloop ()
  • строка 1: директива Hashbang для средства запуска программы, позволяющая выбрать соответствующий исполняемый файл интерпретатора при самостоятельном выполнении. [10]
  • строка 2: импортирует модуль tkinter в пространство имен вашей программы, но переименовывает его как tk.
  • строка 4: класс приложения наследуется от класса Frame Tkinter.
  • строка 6: определяет функцию, которая устанавливает фрейм.
  • строка 7: вызывает конструктор родительского класса Frame.
  • строка 11: Определение виджетов.
  • строка 12: Создает метку с именем MondialLabel с текстом «Hello World».
  • строка 13: Устанавливает голубой цвет фона MondialLabel.
  • Строка 14: Помещает метку в приложение, чтобы она была видна с помощью метода диспетчера геометрии сетки.
  • строка 15: Создает кнопку с надписью «Выйти».
  • строка 16: помещает кнопку в приложение. Сетка, размещение и упаковка - все это методы сделать виджет видимым.
  • строка 18: Основная программа начинается здесь с создания экземпляра класса Application.
  • строка 19: Вызов этого метода устанавливает заголовок окна как «Пример приложения».
  • строка 20: запускает основной цикл приложения в ожидании событий мыши и клавиатуры.

Поисковая система Google [ править ]

#! / usr / bin / env python3из  tkinter  import  *корень = Tk ()корень . геометрия ( "500x300" )корень . минимальный размер ( 500 , 300 )корень . макс. размер ( 500 , 300 )корень . title ( "/// ПОИСК ПО GOOGLE ///" )Ярлык ( text = "* GOOGLE *" , font = "lucida 20 bold" , fg = "red" ) . pack ()Ярлык ( текст = "--------------------------------------------- ------- " ) . pack ()def  click (): попробуйте : импорт  pywhatkit pywhatkit . поиск ( strval . get ()) кроме  исключения  как  e : Сообщение ( корень , «Нет подключения к Интернету» ) . pack () # text varibalestrval = StringVar ()Ярлык ( text = "search here" , font = "billaboard 10 italic" , pady = 5 ) . pack ()Запись ( корень , текстовая переменная = strval ) . pack ()Кнопка ( root , text = "нажмите для подтверждения" , bg = "black" , fg = "white" , command = click ) . пачка ( пады = 20 )Кнопка ( root , text = "QUIT?"  , Bg = "sky blue" , fg = "black" , command = exit ) . пачка ( пады = 20 )корень . mainloop ()
  • Этот код создает панель прямого поиска для Google.

Ссылки [ править ]

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

Внешние ссылки [ править ]

  • TkInter , Python вики
  • Tkinter GUI Tutorial , охватывает каждый виджет индивидуально.
  • Лунд, Фредрик (1999), Введение в Tkinter
  • TkDocs : включает не зависящую от языка и специфичную для Python информацию и учебное пособие.
  • Ферг, Стивен, Мыслить в Tkinter