gui
April 25, 2023

Некорявый tkinter 

Часть 1

Традиционно считается, что tk выглядит коряво. Одна из самых старых библиотек для создания графических интерфейсов действительно выглядит не особенно модно, но правда заключается в том, что она есть, она работает в большинстве современных операционных систем, на ней написано некоторое количество программ, включая IDLE - редактор исходных текстов, который всегда устанавливается вместе с python, и, судя по заметно возрастающему количеству сайтов, на которых можно найти примеры программ, она не собирается никуда исчезать.

И мы по-прежнему можем легко приделать к нашим питоновским скриптам минималистический графический интерфейс с помощью очень простого и лаконичного набора виджетов. Кода придётся писать немного, а потому затраты времени и сложность таких работ обычно невелики.

У корявости tk есть свои исторические причины. В годы написания этой библиотеки графические интерфейсы в ОС вроде DEC/VMS или SUN/SOLARIS примерно таким образом и выглядели.

Классичесский вид виджетов

Но технологии не стоят на месте. Так современный tk вполне себе меняет внешний вид виджетов с помощью подключения библиотек. Или вы сами можете изменить внешний вид виджетов с помощью создания собственных стилей.

Процесс модернизации tk никогда не останавливался. В последние годы темпы изменений только возросли. Тут сыграла свою роль возрастающая популярность python и технологий с ним связанных. Data Sсiense, AI, ML и прочие модные вещи привели к росту интереса в том числе и к tk.

Современный tk содержит модернизированный набор виджетов, который называется ttk. Именно этот набор виджетов лучше всего использовать для современных программ, так как он поддерживает стили оформления.

Тема по умолчанию

Для того, чтобы разобраться с программными интерфейсами и посмотреть на механизмы отрисовки виджетов , я написал небольшое приложение для тестирования этих библиотек.

Стандартные темы

Они входят в стандартный комплект и достаточно аккуратны. Главный недостаток - они все светлые, в то время как многие пользователи предпочитают тёмные темы.

ttkthemes

Ttkthemes - это просто комплект тем разных авторов, собранный в один пакет.

В этом комплекте присутствуют как тёмные, так и светлые темы, он предоставляет возможность мимикрии приложения под внешний вид различных ОС.

Они сделали это! Аккуратная тёмная тема здесь есть.

Обычная установка через pip:

pip install ttkthemes
Тот самый clearlooks из гнома 2.0 По мнению очень многих пользователей это эталонный интерфейс до сих пор.

Две темы(ubuntu и smog) из этого комплекта имеют небольшие дефекты - они не устанавливают правильный цвет фона для выбранного элемента treeview. Впрочем если вам нужны именно эти темы, то исправить это нетрудно как внутри кода ttkthemes, так и внутри кода вашего приложения.

Продолжение здесь >>