Ruby の GUI ツールキットとして Shoes を使用しています。
私の質問は、スタック全体をどのように整列させるのですか? なんとかパラを中央に揃えることができましたが、:align はスタックでは機能しません...
直接的な方法はないと思いますが、そのようなことを行うことができます(実際には水平方向と垂直方向のセンタリングを行います):
Shoes.app do
@s=stack :width=>300, :height=>100, do
background red
end
@top=(@s.parent.height-@s.style[:height])/2
@left=(@s.parent.width-@s.style[:width])/2
@s.move(@left,@top)
end
使いやすくするために、おそらく関数でラップできます。
def center(elem)
top=(elem.parent.height-elem.style[:height])/2
left=(elem.parent.width-elem.style[:width])/2
elem.move(left,top)
end
そして、そのように使用します:
...
@s=stack :width=>300, :height=>100, do
background red
end
center(@s)
...
.. または、次のように Stack クラスを拡張できます。
class Shoes::Types::Stack
def center
top=(self.parent.height-self.style[:height])/2
left=(self.parent.width-self.style[:width])/2
self.move(left,top)
end
end
そのように使用するよりも:
@s=stack :width=>300, :height=>100, do
background red
end
@s.center
K