GUIにおいて部品(ボタンなど)を配置(レイアウト)してゆく場合、レイアウトコマンドによって行なう。
これまではcolumnLayoutによって縦1列に部品を並べていったが、
それ以外の並べ方をする場合にはそのためのレイアウト(コマンド)を使用する。
レイアウト(コマンド)には以下のような種類がある。
レイアウトの中にレイアウトを入れ子にしておくこともできる。
そうすることによって、複雑な部品の配置を実現できる。
その場合にsetParent ..;によってどこまでが特定のレイアウトの範囲なのかを決める。
レイアウトによってボタンを縦・横にGUIを作ってみよう。
GUIの部品を横に並べるためにはrowLayoutなどを使用する。
以下のMELスクリプトをlayout1.melという名前で作る。
window -title "layout1";
columnLayout;
button -label "A";
rowLayout -numberOfColumns 2 -columnWidth2 20 20;
button -label "B";
button -label "C";
setParent ..;
button -label "D";
rowLayout -numberOfColumns 3 -columnWidth3 20 20 20;
button -label "E";
button -label "F";
button -label "G";
setParent ..;
showWindow;
このMELスクリプトを読み込んで実行すると以下のウインドウが表示される。
(各ボタンにはコマンドを割り当てていないので押しても何も実行されない。)
window -title "layout1";
ウインドウを作る。
columnLayout;
columnLayoutをつくる。
button -label "A";
Aというラベルのついたボタン。
rowLayout -numberOfColumns 2 -columnWidth2 20 20;
rowLayoutコマンドにより、これ以後の部品は横1列に並んでゆく。
button -label "B";
Bというラベルのついたボタン。
button -label "C";
Cというラベルのついたボタン。
setParent ..;
rowLayoutの有効な範囲の終り。
button -label "D";
Dというラベルのついたボタン。
rowLayout -numberOfColumns 3 -columnWidth3 20 20 20;
rowLayoutコマンドにより、これ以後の部品は横1列に並んでゆく。
button -label "E";
Eというラベルのついたボタン。
button -label "F";
Fというラベルのついたボタン。
button -label "G";
Gというラベルのついたボタン。
setParent ..;
rowLayoutの有効な範囲の終り。
showWindow;
windowを表示する。