Главная


27.3. Строки спецификации ресурсов

Каждая строка в файле опций определяет значение одной или нескольких опций в одном или нескольких приложениях и имеет один из этих форматов:

app option-pattern: value
option-pattern: value

Первая форма задает опции только в том случае, если имя приложения совпадает с app; вторая форма задает опции для всех приложений.

Например, если ваше приложение называется xparrot, то строка вида

xparrot*background: LimeGreen

устанавливает все опции background в приложении xparrot в лаймово-зеленый цвет. (Используйте опцию -name в командной строке при запуске приложения, чтобы задать имя 'xparrot').

Часть option-pattern имеет следующий синтаксис:

{{*|.}name}...option

То есть, каждый option-pattern - это список из нуля или более имен, перед каждым из которых стоит звездочка или точка. Последнее имя в серии - это имя опции, которую вы устанавливаете. Каждое из этих имен может быть либо:

Принцип работы шаблонов опций немного сложен. Давайте начнем с простого примера:

*font: times 24

Эта строка говорит, что все опции font должны по умолчанию иметь 24-строчный шрифт Times. Символ * называется символом свободной привязки и означает, что данный шаблон опций применяется к любой опции font в любом месте любого приложения. Сравните с этим примером:

*Listbox.font: lucidatypewriter 14

Точка между Listbox и font называется символом жесткой привязки и означает, что это правило применяется только к опциям font для виджетов класса Listbox.

В качестве другого примера предположим, что в вашем приложении xparrot есть экземпляры виджетов класса Jukebox. Чтобы установить цвет фона по умолчанию для всех виджетов класса Jukebox, вы можете поместить в файл опций строку следующего вида:

xparrot*Jukebox*background: PapayaWhip

Символ свободной привязки (*) между Jukebox и background делает это правило применимым к любой опции background любого виджета внутри Jukebox. Сравните с этой строкой опций:

xparrot*Jukebox.background: NavajoWhite

Это правило будет применяться к фрейму, составляющему сам виджет Jukebox, но из-за символа жесткой привязки оно не будет применяться к виджетам, находящимся внутри виджета Jukebox.

В следующем разделе мы поговорим о том, как Tkinter определяет, какое именно значение опции использовать, если применяется несколько строк спецификации ресурсов.


>> Правила согласования ресурсов