Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
Библиотека tkinter и пакет ttk
Пора не много поговорить о пакете ttk. Собственно он не сёт принципиальную новизну по отношению к самой библиотеке tkinter. Скорее улучшает стили элементов в разных операционных системах и предлагает единый подход к описанию внешнего вида элемента.
Для того, чтобы сравнить оба подхода напишем программу с элементом одного вида, но созданного разными способами.
Для использования ttk в начале программы:
from tkinter import ttk
Ниже представлена программа, где создаются две кнопки выхода с использованием tkinter и ttk.
Замечания по программе
Пакет ttk был создан для того, чтобы сделать программирование в библиотеке tkinter более упорядоченным. Большая часть свойств кнопки переносится в стиль. Создаётся объект ttk.style(). В качестве имени стиля для кнопки указывается имя.TButton. Для других элементов справа от точки указываются соответствующий строковый идентификатор. Например, TEntry, TLabel и т.д. Далее задаются свойства стиля кнопки с помощью метода style.configure(). Свойства, связанные с изменением состояния кнопки задаётся методом style.map(). Текст на кнопке, реакцию нажатия, курсор мыши нужно задавать непосредственно при создании кнопки (cursor='dot'). И здесь, мне кажется, форму курсора также можно было бы также включить в параметр .map(). При создании кнопки нужно теперь указывать стиль.
В окне т.о. создаются две идентичные кнопки, созданные с помощью разных механизмов. Понятно, почему был создан отдельный пакет для тех же самых элементов окна. Появилась возможность создания стиля для группы элементов. Скажем у вас штук двадцать кнопок с разным функциональным наполнением. Можно создать для них один и тот же стиль, а потом менять его, как говорят "лёгким движением руки". Идея понятна. Для больших приложений есть смысл использовать именно ttk, вместо tkinter при создании виджетов.
Пока всё! Продолжение следует...
Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.