1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

Mel. Hide\UnHide OutlinerWindow.

Тема в разделе "Maya", создана пользователем SLONIK_ZX, 27 окт 2004.

Модераторы: Dark™, Skif
  1. SLONIK_ZX

    SLONIK_ZX Активный участник

    С нами с:
    02.03.2003
    Сообщения:
    238
    Симпатии:
    1
    Баллы:
    14
    Добрый день ! Такая проблема: У меня есть бестолковый хоткей-
    ---------------------------
    if (`window -ex outlinerPanel1Window`)
    {
    deleteUI outlinerPanel1Window;
    }
    else
    {
    OutlinerWindow;
    }
    ---------------------------
    Бестолковый потому, что удаляясь и создаваясь вновь, открытые деревья становятся закрытыми и приходится вновь открывать иерархию.
    Хочу настроить тоггл флажка видимости для окна.
    Но почему я не могу достучаться до окна по его имени после того, как его скрываю? Может быть, имя как-то меняется?
    ---------------------------
    OutlinerWindow;
    window -edit -visible false outlinerPanel1Window;

    window -edit -visible false outlinerPanel1Window;
    // Error: Object not found: outlinerPanel1Window //
    window -edit -visible true outlinerPanel1Window;
    // Error: Object not found: outlinerPanel1Window //
    ---------------------------
     
  2. Grape

    Grape Активный участник

    С нами с:
    06.05.2004
    Сообщения:
    93
    Симпатии:
    0
    Баллы:
    5
    :) забавно я вот уже час сижу не могу докопаться. Непонятно почему.

    в общем если у кого получится напишите плз, очень полезный вопрос.
     
  3. Grape

    Grape Активный участник

    С нами с:
    06.05.2004
    Сообщения:
    93
    Симпатии:
    0
    Баллы:
    5
    Дошло. При создании аутлайнера нужно дописывать -ret
    таким образом он при закрытии не будет удаляться, а будет только скрываться.

    window -ret;

    frameLayout -labelVisible false;

    string $panel = `outlinerPanel`;

    string $outliner = `outlinerPanel -query -outlinerEditor $panel`;

    outlinerEditor -edit

    -mainListConnection "worldList"

    -selectionConnection "modelList"

    -showShapes false

    -showAttributes false

    -showConnected false

    -showAnimCurvesOnly false

    -autoExpand false

    -showDagOnly true

    -ignoreDagHierarchy false

    -expandConnections false

    -showCompounds true

    -showNumericAttrsOnly false

    -highlightActive true

    -autoSelectNewObjects false

    -doNotSelectNewObjects false

    -transmitFilters false

    -showSetMembers true

    -setFilter defaultSetFilter

    $outliner;

    showWindow;


    теперь если ты его удалишь и снова запустишь то все будет в нем так как и прежде.

    сейчас попробую написать что-то работающее.
     
  4. SLONIK_ZX

    SLONIK_ZX Активный участник

    С нами с:
    02.03.2003
    Сообщения:
    238
    Симпатии:
    1
    Баллы:
    14
    На самом деле, я наверное тупой ... Но использование -ret пользы не принесло.

    Вот, допустим, в первой строчке вишенаписанного скрипта, укажем имя создаваемого окна. Специально пишу через i:
    window -title OUTLINIR -ret;

    После создания окна, как его удалить ? "deleteUI OUTLINIR" не удаляет :
    // Error: Object not found: OUTLINIR //

    Что-то я не понимаю в именовании окон.
     
  5. Grape.

    Grape. Активный участник

    С нами с:
    28.12.2004
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    15
    window -title OUTLINIR -ret myWindow;

    window -vis 0 myWindow

    или

    window -vis 1 myWindow;

    то что у тебя написано OUTLINIR - это титл самого окна, а не название UI нода.
    название пишется в самом конце (в данном случае myWindow)

    В итоге если у тебя есть какой-нить свой скрипт с созданием аутлайнера myOutliner.mel (а там создаваемое окно называется myWindow и стоит флаг -ret), можно написать так:

    int $a = `window -vis myWindow`;
    if (`window -exists myWindow`)
    {
    if ($a = 1)
    window -vis 0 myWindow;
    else
    window -vis 1 myWindow;
    }
    else
    myOutliner;

    я не проверял правильно ли здесь все, но по идее должно работать
     
  6. Grape

    Grape Активный участник

    С нами с:
    06.05.2004
    Сообщения:
    93
    Симпатии:
    0
    Баллы:
    5
    if (`window -ex myOutliner`)

    {
    int $a = `window -q -vis myWindow`;
    if ($a == 1)
    window -e -vis 0 myWindow;
    else
    window -e -vis 1 myWindow;
    }

    else

    myOutliner;

    -------------------------------------------------------------

    Вот так будет правильно, я проверил.
     
  7. SLONIK_ZX

    SLONIK_ZX Активный участник

    С нами с:
    02.03.2003
    Сообщения:
    238
    Симпатии:
    1
    Баллы:
    14
    2 Grape: Спасибо, друг ! Очень помог !
     
Модераторы: Dark™, Skif

Поделиться этой страницей