コミュニティ
Maya - 日本語
製品テクニックや情報を共有、質問、解答したり、情報を検索など使い方は様々です。お役立てください。
キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

tabLayoutコマンド(MELバージョン)でのtabの削除について

2件の返信2
解決済み
返信
メッセージ1/3
unknown3210
201 件の閲覧回数, 2 件の返信

tabLayoutコマンド(MELバージョン)でのtabの削除について

環境

Windows11 Home 21H2

Maya2022.2

 

質問内容

現在、タブの数をユーザーが可変的にコントロールできるUIをtabLayoutで作成しています。

 

増やしたタブを消すために、「tabsClosable」フラグをtrueにしたところまでは無事に機能しました。(公式のサンプルより下記コードと図1)

window -widthHeight 200 150;
string $form = `formLayout`;
string $tabs = `tabLayout -innerMarginWidth 5 -innerMarginHeight 5 -tc true`;
formLayout -edit
    -attachForm $tabs "top"    0
     -attachForm $tabs "left"   0
     -attachForm $tabs "bottom" 0
     -attachForm $tabs "right"  0
     $form;

     string $child1 = `rowColumnLayout -numberOfColumns 2`;
         button; button; button;
         setParent ..;

     string $child2 = `rowColumnLayout -numberOfColumns 2`;
         button; button; button;
         setParent ..;

     tabLayout -edit
         -tabLabel $child1 "One" -tabLabel $child2 "Two"
         $tabs;

 showWindow;

図1図1

 ↑図1

 

しかし、「closeTabCommand」フラグで同時に何かコマンドを実行しようとすると、そのコマンドは実行されるもののタブは消えなくなってしまいました。(下記コードと図2)

proc test_tabClose(){
    print "Closed!!";
}

window -widthHeight 200 150;
string $form = `formLayout`;
string $tabs = `tabLayout -innerMarginWidth 5 -innerMarginHeight 5 -tc true -ctc "test_tabClose();"`;
formLayout -edit
    -attachForm $tabs "top"    0
     -attachForm $tabs "left"   0
     -attachForm $tabs "bottom" 0
     -attachForm $tabs "right"  0
     $form;

     string $child1 = `rowColumnLayout -numberOfColumns 2`;
         button; button; button;
         setParent ..;

     string $child2 = `rowColumnLayout -numberOfColumns 2`;
         button; button; button;
         setParent ..;

     tabLayout -edit
         -tabLabel $child1 "One" -tabLabel $child2 "Two"
         $tabs;

 showWindow;

YesCommand.png

 ↑図2

 

このような挙動になる原因と解決法を教えていただきたいです。

タグ(3)
2件の返信2
メッセージ2/3
SOTOMEA
次のアカウントへの返信: unknown3210

こんにちは。

 

closeTabCommand ですが、調べたところMaya本体の以下のファイルの3470行目でも使われているみたいです。

C:\Program Files\Autodesk\Maya2022\scripts\startup\scriptEditorPanel.mel

 

3470行目:
-closeTabCommand "removeExecuterTab( #1, #2 )"

 

"removeExecuterTab"の中を見ると、タブを閉じる処理も書かれているようなので、このプロシージャを参考にするとよいかもしれません。

 

 



Sotome
メッセージ3/3
unknown3210
次のアカウントへの返信: SOTOMEA

ご指摘いただいた箇所のコードを参考にして、レイアウトの子をこちらで指定してdeleteUIから削除するという処理によって解決することができました。

 

ありがとうございました。

お探しの情報が見つからないときは、コミュニティで質問しましょう。困っている人がいたら、情報を教えてあげましょう。

フォーラムに投稿  

State of Design & Make 2024