ファイヤープロジェクト
より高度なレイアウト
2005-02-19T15:30+09:00   matsu
要素spacerや要素boxのみでは指定しきれないレイアウト指定について調査してみた.
属性widthと属性heightを使用して要素の大きさを指定することができる.
だが,この方法は可搬性に乏しく,themeによってはうまく表示されない場合もある.スタイルシートプロパティを使用するとよいらしい.属性widthと属性heightにはそれぞれmax,minのバリエーションがある(minwidth,minheight,maxwidth,maxheight).これらは,基本は自動計算によるレイアウトに任せるが,最大,最小の幅,高さは指定するといった場合に使用する.
要素は大きさを指定しない限り,自動計算により大きさが決定される.結果にはウィンドウの大きさなどが反映される.したがってウィンドウの大きさがかわると例えば要素buttonの大きさもかわる.要素spacerを使用して大きさを安定させることができるが,ソースが繁雑になってしまう.要素boxの子要素に対しては,属性packによって大きさを安定させることができる.親要素であるboxに属性指定するだけで,全てのその子要素に反映されるので,ソースがすっきりして便利である.
属性packはあくまでもその属性を指定した要素の子要素に影響する.属性packの効果は以下の様に,指定する要素のorientによってかわる.
start
orientがhorizontal(またはhbox)では左詰め,vertical(またはvbox)なら上詰め.
center
中心揃え.
end
orientがhorizontal(またはhbox)では右詰め,vertical(またはvbox)なら下詰め.
属性packはその要素boxのorientと同じ方向についての位置の指定であった.属性alignはorientとは垂直方向の位置の指定である.
packのサンプルとのいわば直交性に注意.属性の値には以下がある.
start
orientがhorizontal(またはhbox)では上詰め,vertical(またはvbox)なら左詰め.
center
中心揃え.
end
orientがhorizontal(またはhbox)では下詰め,vertical(またはvbox)なら右詰め.
baseline
orientがhorizontal(またはhbox)の場合のみ有効.テキストラインが上になるようにする?
stretch
orientがhorizontal(またはhbox)では縦方向に,vertical(またはvbox)なら横方向に引き延ばす.packを指定しなければその要素はorientと同じ方向に引き延ばされるが,orientと直交に引き延ばすにはalignにこれを指定する.
matsu(C)
Since 2002
Mail to matsu