Главная


27. Стандартизация внешнего вида и база данных опций

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

Поэтому мы используем идею базы данных опций (option database) для установки значений опций по умолчанию.

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

Поэтому база данных опций позволяет программисту и пользователю задавать общие шаблоны (general patterns), описывающие, какие виджеты следует конфигурировать.

Эти шаблоны оперируют именами виджетов, но виджеты именуются с помощью двух параллельных схем именования:

  1. Каждый виджет имеет имя класса (class name). По умолчанию имя класса совпадает с именем конструктора класса: 'Button' для кнопок, 'Frame' для рамок и так далее. Однако вы можете создавать новые классы виджетов, обычно наследуя от класса Frame, и давать им новые имена по своему усмотрению. Подробности см. в Раздел 27.1, "Как назвать класс виджета".

  2. Вы также можете дать любому виджету имя экземпляра (instance name). По умолчанию имя виджета обычно представляет собой бессмысленное число (см. Раздел 5.11, "Имена окон"). Однако, как и в случае с классами виджетов, вы можете присвоить имя любому виджету. Подробности см. в разделе Раздел 27.2, "Как присвоить имя экземпляру виджета".

Таким образом, каждый виджет в любом приложении имеет две иерархии имен - иерархию имен классов и иерархию имен экземпляров. Например, кнопка, встроенная в текстовый виджет, который сам встроен во фрейм, будет иметь иерархию классов Frame.Text.Button. У нее также может быть иерархия экземпляров, например .mainFrame.messageText.panicButton, если вы дадите такие имена всем экземплярам. Начальная точка обозначает корневое окно; дополнительную информацию об именах путей к окнам см. в Раздел 5.11, "Имена окон".

Механизм базы данных опций может использовать как имена классов, так и имена экземпляров при определении опций, поэтому вы можете сделать так, чтобы опции применялись ко всем классам (например, все кнопки имеют синий фон) или к конкретным экземплярам (например, на кнопке " Panic" есть красные буквы). После того как мы рассмотрим, как давать имена классам и экземплярам, в разделе 27.3, "Строки спецификации ресурсов" мы обсудим, как на самом деле работает база данных опций.


>> Как назвать класс виджета