==== Style ==== Style это класс для работы со стилями и темами. Именно этот класс надо использовать для конфигурирования внешнего вида виджетов. Основные методы класса: ===configure=== Конфигурирование внешнего вида виджетов. В качестве аргументов принимает название стиля виджета (например "TButton") и список опций конфигурирования. Пример: style.configure("TButton", padding=6, relief="flat", background="#ccc") ===map=== Конфигурирование внешнего вида виджетов в зависимости от их состояний (active, pressed, disabled и т.д.). В качестве аргументов принимает название стиля виджета и список опций конфигурирования, где опции представлены в виде списка. Пример: style.map("C.TButton", foreground=[('pressed', 'red'), ('active', 'blue')], background=[('pressed', '!disabled', 'black'), ('active', 'white')] ) ===lookup=== Возвращает соответствующую опцию конфигурирования. Пример: style.lookup("TButton", "font") ===layout=== Изменяет layout (схему) виджета. Виджеты ttk состоят из отдельных элементов, опций конфигурирования и других вложенных layouts. Следующий пример иллюстрирует применение метода layout: style.layout("TMenubutton", [ ("Menubutton.background", None), ("Menubutton.button", {"children": [("Menubutton.focus", {"children": [("Menubutton.padding", {"children": [("Menubutton.label", {"side": "left", "expand": 1})] })] })] }), ]) **element_create** - Создаёт новый элемент темы. \\ **element_names** - Возвращает список элементов текущей темы. \\ **element_options** - Возвращает список опций (конфигурацию), указанного в аргументе элемента. \\ **theme_create** - Создаёт новую тему. Аргументы те же, что и в theme_settings. \\ **theme_settings** - Конфигурирует существующую тему. Первый аргумент - название темы, второй аргумент - словарь, ключами которого являются названия стилей (TButton и т.п.), а значениями - layout соответствующего стиля. \\ **theme_names** - Возвращает список доступных тем. \\ **theme_use** - Изменяет текущую тему на указанную в аргументе. \\ Примеры: from tkinter import * from tkinter import ttk def setGeometry(win, winx, winy):#Функция выравнивает окно по центру x = (root.winfo_screenwidth() / 2 - winx / 2) y = (root.winfo_screenheight() / 2 - winy / 2) win.geometry("%dx%d+%d+%d" % (winx, winy, x, y)) root=Tk() setGeometry(root,400, 300) s = ttk.Style() print('Темы: ',s.theme_names()) print('Тема по умолчанию: ',s.theme_use()) s.theme_use('vista') s.configure('.', foreground="red") s.configure('TButton', width=19, padding=6) s.configure('TCombobox', width=15) s.configure('my.TButton', width=19, padding=6, foreground="blue") Button(root, text="Button 1", padx=40, pady=5).pack(pady=10) ttk.Button(root, text="Button 2").pack(pady=10) ttk.Button(root, text="Button 3", style="my.TButton").pack(pady=10) Entry(root).pack(pady=10) ttk.Entry(root).pack(pady=10) root.mainloop() {{ :python:оконное_приложение:tkinter:ttk:ttk1.png?300 |}}