Tkinter ttk (модуль)

ttk (themed tk) это расширение tcl/tk с новым набором виджетов. В ttk используется новый движок для создания виджетов. Этот движок обладает поддержкой тем и стилей оформления. Благодаря этому виджеты ttk выглядят более естественно в различных операционных системах.

Начиная с версий python 2.7 и 3.1.2 в Tkinter включён модуль для работы с ttk.

Поскольку это относительно новая возможность Tkinter, несколько слов об установке этого модуля. Версии python 2.7/3.1.2 и старше уже имеют в своём составе этот модуль. Для использования ttk с более ранними версиями python, его нужно установить самостоятельно. В данный момент python-ttk хостится в svn python.org. Модуль представляет собой один файл - ttk.py, который нужно положить в каталог, где его сможет найти python. Прямые ссылки для скачивания: для версии 2.x, для версии 3.x.

С точки зрения программиста главное отличие новых виджетов от старых заключается в том, что у виджетов ttk отсутствуют опции для конфигурирования его внешнего вида. Сравните, например, количество STANDARD OPTIONS для старого и нового виджета button. Конфигурация внешнего вида виджетов ttk осуществляется через темы и стили. В остальном использование виджетов ttk аналогично соответствующим виджетам tk.

ttk имеет четыре встроенных темы: default, classic, alt, clam. Кроме того дополнительно под Windows есть темы winnative, xpnative и vista, а под Mac OS X - aqua.

## Style

*Основная статья: Style.*
Style это класс для работы со стилями и темами. Именно этот класс надо использовать для конфигурирования внешнего вида виджетов.

### Основные функции

* **configure** - конфигурирование внешнего вида виджетов;
* **map** - конфигурирование внешнего вида виджетов в зависимости от их состояний;
* **lookup** - возвращает соответствующую опцию конфигурирования;
* **layout** - изменяет layout (схему) виджета. Виджеты ttk состоят из отдельных элементов, опций конфигурирования и других вложенных layouts;

## Label

*Основная статья: Label.*
*Виджет **Label** в модуле Tkinter.*
Label - это виджет, предназначенный для отображения какой-либо надписи без возможности редактирования пользователем.

### Основные аргументы

* **master** - родительский виджет;
* **text** - отображаемый текст;
* **font** - шрифт и размер текста. Вводится в формате "font size";
* **height**/**width** - высота и ширина в символах;

### Основные функции

* **pack()**/**grid()**/**place()** - упаковщики;

## Button

*Основная статья: Button.*
*Виджет **Button** в модуле Tkinter.*
Виджет Button - самая обыкновенная кнопка, которая используется в тысячах программ.

### Основные аргументы

* **master** - родительский виджет;
* **text** - отображаемый текст;
* **font** - шрифт и размер текста. Вводится в формате "font size";
* **command** - функция, вызываемая при нажатии. Вводится без скобок;
* **height**/**width** - высота и ширина в символах;

### Основные функции

* **pack()**/**grid()**/**place()** - упаковщики;

## Frame

*Основная статья: Frame.*
*Виджет **Frame** в модуле Tkinter.*
Виджет Frame (рамка) предназначен для организации виджетов внутри окна.

### Основные функции

* **pack()**/**grid()**/**place()** - упаковщики;

## Checkbutton

*Основная статья: Checkbutton.*
*Виджет **Checkbutton** в модуле Tkinter.*
Checkbutton - это виджет, который позволяет отметить „галочкой“ определенный пункт в окне. При использовании нескольких пунктов нужно каждому присвоить свою переменную.

### Основные аргументы

* **master** - родительский виджет;
* **text** - отображаемый текст;
* **variable** - переменная, отвечающая за состояние;
* **onvalue**/**offvalue** - значение задаваемое переменной в включеном/выключеном состоянии;
* **font** - шрифт и размер текста. Вводится в формате "font size";

### Основные функции

* **pack()**/**grid()**/**place()** - упаковщики;

## Radiobutton

*Основная статья: Radiobutton.*
*Виджет **Radiobutton** в модуле Tkinter.*
Виджет Radiobutton выполняет функцию, схожую с функцией виджета Checkbutton. Разница в том, что в виджете Radiobutton пользователь может выбрать лишь один из пунктов.

### Основные аргументы

* **master** - родительский виджет;
* **text** - отображаемый текст;
* **variable** - переменная, отвечающая за состояние;
* **value** - значение задаваемое переменной в выбраном состоянии;
* **font** - шрифт и размер текста. Вводится в формате "font size";

### Основные функции

* **pack()**/**grid()**/**place()** - упаковщики;

## Entry

*Основная статья: Entry.*
*Виджет **Entry** в модуле Tkinter.*
Entry - это виджет, позволяющий пользователю ввести одну строку текста.

### Основные аргументы

* **master** - родительский виджет;
* **font** - шрифт и размер текста. Вводится в формате "font size";
* **width** - ширина в символах;

### Основные функции

* **pack()**/**grid()**/**place()** - упаковщики;
* **get()** - возвращает введенный текст;

## Scale

*Основная статья: Scale.*
*Виджет **Scale** в модуле Tkinter.*
*Виджет **LabeledScale** в модуле Tkinter Ttk.*
Scale (шкала) - это виджет, позволяющий выбрать какое-либо значение из заданного диапазона.

### Основные аргументы

* **master** - родительский виджет;
* **orient** - ориентация шкалы. Принимает значения HORIZONTAL ("horizontal") и VERTICAL ("vertical");
* **font** - шрифт и размер текста. Вводится в формате "font size";
* **length** - длина в пикселях;
* **from\_** - с какого значения начинается шкала;
* **to** - каким значением заканчивается шкала;
* **tickinterval** - интервал, через который отображаются метки шкалы;
* **resolution** - шаг передвижения (минимальная длина, на которую можно передвинуть рычажок);

### Основные функции

* **pack()**/**grid()**/**place()** - упаковщики;
* **get()** - возвращает выбранное значение;

## Scrollbar

*Основная статья: Scrollbar.*
*Виджет **Scrollbar** в модуле Tkinter.*
Этот виджет даёт возможность пользователю "прокрутить" другой виджет (например текстовое поле) и часто бывает полезен.

### Основные аргументы

* **master** - родительский виджет;
* **orient** - ориентация шкалы. Принимает значения HORIZONTAL ("horizontal") и VERTICAL ("vertical");

### Основные функции

* **pack()**/**grid()**/**place()** - упаковщики;

## Menubutton

*Основная статья: Menubutton.*
*Виджет **Menubutton** в модуле Tkinter.*
## Combobox

*Основная статья: Combobox.*
*Виджет **Listbox** в модуле Tkinter.*
## Sizegrip

*Основная статья: Sizegrip.*
Виджет для изменения размера окна.

### Основные функции

* **pack()**/**grid()**/**place()** - упаковщики;

## LabeledScale

*Основная статья: LabeledScale.*
*Виджет **Scale** в модуле Tkinter Ttk.*
*Виджет **Scale** в модуле Tkinter.*