Как и положено, раздел, задаваемый командой frameLayout, возник, однако он какой-то бесхозный, со странным именем и отсутствием способности закрываться-открываться. Быстро смотрим описание этой команды и находим нужные флаги:

frameLayout -I “push Field Attributes” -ell 1;

Флаг -ell (-collapsable) включает/выключает способность «схлопываться». Единица, следующая за флагом, означает «включить», и вместо нее можно написать “on” или “true”, но это будет дольше, хотя и более понятно. Такие флаги в документации описаны как имеющие тип bool (логический) и предполагают значения типа 0/1 или “on”/’’off”.

Однако нам нужно сделать два раздела, по одному для каждого поля. Следовательно, нужно закончить или «оборвать» один раздел после трех команд attrFieldSliderGrp и начать новый раздел. Выглядеть это будет примерно следующим образом:

window -t “drop attributes”; columnLayout;

frameLayout -I “push Field Attributes” -ell 1; columnLayout; attrFieldSliderGrp -at pushField.mag -min 0 -max 50; attrFieldSliderGrp -at pushField.att -min 0 -max 4 ; attrFieldSliderGrp -at pushField.max -min 0 -max 10 ; setParent setParent..;

frameLayout -I “pull Field Attributes” -ell 1; columnLayout; attrFieldSliderGrp -at pullField.mag -min -50 -max 0; attrFieldSliderGrp -at pullField.att -min 0 -max 4 ; attrFieldSliderGrp -at pullField.max -min 0 -max 10 ; setParent setParent showWindow;

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

свежий отзыв про сидбанк, выбор семян и качество сервиса в отзыв о herbies по делу.

Чтобы вы лучше поняли логику построения многоуровневых интерфейсов, приведу следующую аналогию.

Представьте себе, что окно это рамка (window), куда вы вставляете лист картона (columnLayout), чтобы на нем что-нибудь написать или прикрепить.

На этот лист вы крепите еще две рамки (frameLayout), в которые вставлены свои листы картона (columnLayout), на которых друг под другом закреплены таблички attrFieldSliderGrp.

Если собирать такой конструктор последовательно сверху вниз, как мы и делаем в скрипте, то расположив таблички attrFieldSliderGrp на columnLayout, который лежит внутри frameLayout, придется спуститься на два уровня вниз (или вверх, в зависимости от того, откуда смотреть), на главный columnLayout, на котором снова расположить второй frameLayout, содержащий свой columnLayout, на котором расположены еще три таблички attrFieldSliderGrp и т.д.

Команда setPatent осуществляет переход на предыдущий уровень. Две точки ~» используются по аналогии с командой cd операционный системы, когда набрав в командной строке Windows или Unix ~cd вы попадаете в предыдущий (родительский) каталог.

Таким образом первая команда setPatent ..; перемещает нас (готовых клеить новые элементы в окно) на уровень frameLayout, а вторая команда setPatentпереводит нас на уровень основного columnLayout, на котором мы снова создаем второй frameLayout и т.д.

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


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