Tkinter - GUI для приложений на Python

Tkinter — это пакет для Python (интерфейс) , с помощью которого можно сделать простой графический интерфейс с помощью виджетов Tk .

Нарисовать окошко, а в нем нужные элементы управления — кнопки, поля ввода, списки и все минимально необходимое для простого приложения.

GUI на Tkinter для Python приложения Youtube Shop/

Элементы могут обрабатывать события — клики, ввод текста. Хранить состояния. Элементы можно стилизовать — менять размеры и цвета.

Преимущества Tkinter

На самом деле говорить о преимуществах Tkinter не совсем правильно. Tkinter — это лишь интерфейс к виджетам Tk. Большая часть преимуществ Tkinter именно в виджетах Tk, а Tkinter лишь предоставляет к ним доступ. Однако говоря о Tkinter я говорю о всей этой GUI платформе в целом.

  • простой
  • кроссплатформенный (для мака это все работает в том числе)
  • Tk идет в комплекте с дистрибутивом Python для Windows
  • дизайн приложений выглядит достаточно нативно
  • есть нюансы с масштабированием шрифтов

Недостатки Tkinter

В дистрибутиве нет GUI билдера. Строить интерфейс приходится в коде. Есть масса сторонних билдеров но там хватает нюансов.

В Tk есть два набора виджетов tk и ttk. tk стилизуются крайне слабо, а в ttk, например, нет виджета Text (типа textarea, multiline text input). Да и в целом вносит путаницу.

Альтернатива Tkinter

Лично я считаю единственной альтернативой PyQT. Там и виджетов хватает. И PyQT Designer достаточно внятный. Однако работа с PyQT требует дополнительной настройки окружения, ощутимого усложнения приложения и есть вопросы про лицензирование.

Субъективное мнение — для небольших приложений достаточно Tkinter, а для приложений где важен интерфейс лучше выбрать C# и Visual Studio, если речь про Windows

GUI для YouTube Shop

Сегодняшний интерфейс на Tkinter — это продолжение проекта который я делаю публично на своем канале на Youtube. Я делаю приложение которое парсит статический контент с интернет магазина (картинки и текст), генерит из него видео с помощью ffmpeg, генерит обложку для видео и описание. А после загрузки видео на Youtube приложение загружает для него описание, теги и т.д через YouTube API.

Подробности в видео.

Исходники на GitHub в ветке Tkinter.

Полезные ссылки

Доки по Tkinter
Туториал к Tkinter на англ

Если есть вопросы, конструктивная критика, пожелания или советы — можно писать здесь в комментах, в телеграмме, но лучше в комментах к видео на ютюбе — это помогает продвигать видео, а это, в свою очередь, мотивирует делать этот контент. Так что велкаме!