レイアウトには以下のような種類がある。
レイアウトの中にレイアウトを入れておくこともできる。
そうすることによって、複雑な部品の配置を実現できる。
その場合にsetParent ..;によってどこまでが特定のレイアウトの範囲なのかを決める。
GUIの部品を横に並べるためにはrowLayoutなどを使用する。
rowLayoutを使用する時には-numberOfColumnによって横に何個の部品を並べるかを指定する。
また、rowLayoutとcolumnLayoutをいっしょに使用することで、部品を縦・横に並べることができる。
例えば、以下の様にレイアウトとsetParentを組み合わせると、横1列目にA、横2列目にB、Cが並び、横3列目にD、横3列目E、F、Gが並ぶ。
rowLayoutの-columnWidth2などのフラグは各部品を並べる間隔の指定である。
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スクリプトをlayout1.melという名前で作り実行すると以下のようなウインドウが現れる。
(各ボタンにはコマンドを割り当てていないので押しても何も実行されない。)