【MEL基本】4時限目 UIを横に並べる&アイコンボタンの使用方法


【MEL基本】ボタンで機能を実行するMELを書く
の続きで、今回はボタンを横に並べる方法と、アイコンボタンを使用する方法です。
準備
とりあえMEL基本初回記事の続きからはじめます。
このときは、簡単にボタンの幅を揃えたかったので、「縦に並べる機能」のcolumnLayoutのフラグでサイズを指定(-w 120)にして、その子であるボタンはその幅にピッタリになるよう(-adj true)にしていました。
このままだと都合が悪いので、今回それは解除しましょう。
columnLayoutの直後のフラグを削除してください。

セミコロン( ; )まで消さないように注意してください。
サイズが指定されていないので、ラベルに書かれている内容によって各ボタンの幅がばらばらになります。

では、個別にサイズを色々指定してみましょう。
-w が幅で、必要であれば -h で高さも指定できます。詳細。

(親columnLayoutの -w を消すまでは、オーバーしたサイズは隠れてしまうのですが、)
親の縛りがなくなったので、自由な大きさにできます。

全部同じサイズ揃えたい場合、今のところちょっとめんどくさいですが、すべてに同じサイズを書いてください。
今のところすみません。
横に並べる
それではいよいよ横に並べて見ます。
横に並べたいボタンを
rowLayout というコマンドと、setParent..; で挟みます。
このときrowLayout のフラグ -nc (-numberOfColumns) で横に並べたいボタンの数を必ず指定します。

横に並べたいボタンの数は3つなので、-nc 3。
3つボタンをのあとには、setParent..;で閉じる。こんな感じです。
ボタンを横に並べることが出来ました。

下のコマンドをコピペで、ここまでの結果が得られます。
{
if ( (`window -ex AriToolWindow`) == true ) deleteUI AriToolWindow;
window -title "機能ボタン" AriToolWindow;
scrollLayout;
columnLayout;
button -w 120 -l "シンメトリーチェック" -c "AriSymmetryChecker";
button -w 120 -l "リネーマー" -c "AriRenamer";
separator ;//ただの分割線
button -w 200 -l "UVスケール" -c "AriUVScaleChecker";
button -w 100 -h 60 -l "UV格子状" -c "AriUVGridding";
separator ;//ただの分割線
rowLayout -nc 3;
button -l "アウトライナ" -c "OutlinerWindow";
button -l "ハイパーシェード" -c "HypershadeWindow";
button -w 60 -l "" -c "";
setParent..;
separator ;//ただの分割線
//ここから下はダミー
button -l "" -c "";
button -l "" -c "";
button -l "" -c "";
button -l "" -c "";
setParent..;
setParent..;
showWindow;
}
アイコンボタンを使用する
アイコンの使用も簡単です。
今までbuttonコマンドを使用していましたが、
iconTextButtonというコマンドを使用します。
buttonのときは、(-label) -l でラベル文字を書いていましたが、(-image) -i でアイコン名を指定します。
(-command) -c で実行するコマンドを指定するのは同じですね。

.pngのような拡張子は無しでも大丈夫なはずです。
こんな感じにアイコンのボタンになります。ボタンと同じように押すと、コマンドが実行されます。

もちろんrowLayoutで横になれべられますので、よかったらやってみてください。
使用できるアイコンはデフォルトのものであれば、シェルフエディタで確認できるものです。

(デフォルトアイコンを一覧したい場合このMELお勧めです。)
【MEL】デフォルトアイコン一覧

オリジナルを使用したい場合は、
マイドキュメントmaya階層内にあるiconフォルダに入れれば使用できます。
例
マイドキュメント > maya\2015-x64 > ja_JP > prefs > icons(日本語版)
マイドキュメント > maya\2015-x64 > prefs > icons(英語版)
あとは、一応絶対パスでもいけます。(\は/に)
例
-image "D:/mayaProj/image/test.png"
iconTextButtonコマンドの極最小限の使い方でしたが、フラグはまだまだたくさんあり、こちらで確認できます。
理解できそうなものはチャレンジしてみてください。
http://download.autodesk.com/global/docs/maya2012/ja_jp/Commands/iconTextButton.html
あとフラグですが、-i とかショートのもの使ってますが、後々わかりにくくなりそうでしたら-imageとかロングを使用してください。
自分はそのときの気分で混在させちゃうと思います。
ここまでのソースです。
{
if ( (`window -ex AriToolWindow`) == true ) deleteUI AriToolWindow;
window -title "機能ボタン" AriToolWindow;
scrollLayout;
columnLayout;
button -w 120 -l "シンメトリーチェック" -c "AriSymmetryChecker";
button -w 120 -l "リネーマー" -c "AriRenamer";
separator ;//ただの分割線
button -w 200 -l "UVスケール" -c "AriUVScaleChecker";
button -w 100 -h 60 -l "UV格子状" -c "AriUVGridding";
separator ;//ただの分割線
rowLayout -nc 3;
button -l "アウトライナ" -c "OutlinerWindow";
button -l "ハイパーシェード" -c "HypershadeWindow";
button -w 60 -l "" -c "";
setParent..;
separator ;//ただの分割線
iconTextButton -i "polyDodecahedron.png" -c "OutlinerWindow";
iconTextButton -i "SP_MessageBoxWarning.png" -c "OutlinerWindow";
//ここから下はダミー
button -l "" -c "";
button -l "" -c "";
button -l "" -c "";
button -l "" -c "";
setParent..;
setParent..;
showWindow;
}
1時限目 ボタンで機能を実行するMELを書く
2時限目 コマンドとフラグについて
3時限目 MELファイルの作り方
4時限目 UIを横に並べる&アイコンボタンの使用方法
5時限目 Windowコマンドについて
6時限目 ボタンで複数行のコマンドを実行する
MEL基本カテゴリ
スポンサーリンク