Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Библиотека tkinter и пакет ttk

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Библиотека tkinter и пакет ttk

Пора не много поговорить о пакете ttk. Собственно он не сёт принципиальную новизну по отношению к самой библиотеке tkinter. Скорее улучшает стили элементов в разных операционных системах и предлагает единый подход к описанию внешнего вида элемента.

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

Для использования ttk в начале программы:

from tkinter import ttk

Ниже представлена программа, где создаются две кнопки выхода с использованием tkinter и ttk.

Рисунок 1. Пример использования пакета ttk. текст программы см. ниже по ссылке
Рисунок 1. Пример использования пакета ttk. текст программы см. ниже по ссылке
primer357.py

Замечания по программе

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

В окне т.о. создаются две идентичные кнопки, созданные с помощью разных механизмов. Понятно, почему был создан отдельный пакет для тех же самых элементов окна. Появилась возможность создания стиля для группы элементов. Скажем у вас штук двадцать кнопок с разным функциональным наполнением. Можно создать для них один и тот же стиль, а потом менять его, как говорят "лёгким движением руки". Идея понятна. Для больших приложений есть смысл использовать именно ttk, вместо tkinter при создании виджетов.

Рисунок 2. Две кнопки: tkinter и ttk
Рисунок 2. Две кнопки: tkinter и ttk

Пока всё! Продолжение следует...

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

- У вас есть стиль программирования? - Нет, я пишу, как Бог на душу положил
- У вас есть стиль программирования? - Нет, я пишу, как Бог на душу положил