У этих команд есть очевидный флаг value, позволяющий установить или прочитать значение поля. В режиме создания через этот флаг задаются значения, задаваемые при появлении окна. Две кнопки внизу окна ничем не отличаются от изученных ранее. Очевидно, что первая из них вызывает команду-процедуру построения кривой curveBuilder.

Теперь настало время изменить процедуру curveBuilder так, чтобы перед построением кривой происходило считывание значений числовых полей в окне, и эти значения присваивались уже имеющимся переменным SNumPoints, $Amp и др.

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

Режимы команд построения элементов интерфейса До сих пор мы использовали команды построения интерфейса в режиме создания, то есть добавляли новые элементы в уже созданное окно. И лишь при проверке существования окна в памяти, мы использовали флаг -ex (-exists) для команды window, переводящий ее в режим запроса (или режим получения информации).

Оказывается, абсолютно все команды построения элементов интерфейса (а не только команда window) имеют три режима работы.

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

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

Для элементов интерфейса нет команды типа getAttrUI или getFlagUI, все гораздо проще (а может, сложнее).

Для того, чтобы получить значение флага (определяющего, например, ширину кнопки), надо после команды, используемой для создания кнопки, добавить флаг -q (-quiery). После чего указать флаг, значение которого мы хотим получить (например, -w) и, естественно, имя элемента интерфейса. Команда получения ширины кнопки выглядит примерно так:

$wid = 'button -q -w BUT_CLOSE'; Совершенно очевидно, что надо позаботиться при создании некоторых элементов, чтобы у них были конкретные названия. Это можно сделать в режиме создания, просто добавив в самом конце команды имя элемента.

button -I “Close” -w 188 -с (“deletelll “+$win_name) BUT_CLOSE;

$wid = 'button -q -w BUT_CLOSE'; Абсолютно аналогично используется третий режим, режим редактирования значений флагов, с помощью которого вы можете изменять свойства уже созданных элементов интерфейса. Достаточно использовать после имени команды флаг -е (-edit), затем указать имя флага и обязательно новое значение флага, после чего указать также имя элемента, свойство которого редактируется.

button -( "Close" -w 188 -с (“deleteUI “+$win_name) BUT_CLOSE; button -e -I "Close and Exit” BUT_CLOSE; Если флаги -q или -e в команде работы с элементами интерфейса отсутствуют, то по умолчанию команда используется в режиме создания нового элемента.


⇐ вернуться назад | | далее ⇒