Кнопки, поля ввода, списки, метки и т.д. в концепции Tk это виджеты. В Tk, на момент написания этой заметки, существует два набора виджетов оформленных в виде сабмодулей. Это классический Tk и TTk. Большинство виджетов в этих модулях очень похожи. 18 элементов управления есть и в tk и ttk. Я когда начинал пользоваться Tkinter никак не мог понять зачем тут всё так устроено. Зачем дублируется идентичный функционал. И когда какие виджеты (из каких модулей) мне использовать. Именно на этот вопрос, без сильного погружения в тонкости я попробовал ответить в видео ниже:

Выжимка, чем отличаются виджеты из Tk и TTk

Tk (Tool Kit for Tcl, or Tool Command Language, is an open-source multi-purpose C library which includes a powerful dynamic scripting language. ) — набор виджетов который появился ещё в 90х. Его основной идеей была кроссплатформенные пользовательские интерфейсы. Со временем этот набор виджетов стал устаревать и основной проблемой стала сложность в отделении дизайна от бизнес-логики, поэтому был разработан набор виджетов TTk ( Themed Tool Kit ).

Удобно сравнить Tk с HTML. В HTML тоже можно писать стили прямо в атрибутах тегов, а можно вынести в таблицы стилей. Следуя этой аналогии Tk — это теги дизайн к которым можно писать только в атрибутах, а TTk — это теги дизайн которых описывается только таблицах стилей.

При этом в коде на Python с использованием Tkinter можно одновременно использовать виджеты и Tk и TTk.

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

  • Описание модуля Tkinter.ttk на сайте Python
  • Документация по всем виджетам, как tk, так и ttk
  • Имена классов стилей ttk, чтобы знать что стилизовать
  • Про стилизацию и темы ttk
  • Доки на все виджеты Tk в первоисточнике

В видео не сложного кода, однако то что есть смотри ниже:


Если у вас есть вопросы или я в чем то не прав — смело пишите в комментариях здесь, а лучше в комментариях к видео на Youtube. Стараюсь всем отвечать, а комментарии (так же как и лайки/дислайки) говорят помогают видосикам в продвижении, а, следовательно, мотивирует меня снимать дальше. Ну спасибо что дочитали/досмотрели!