2

Ruby の GUI ツールキットとして Shoes を使用しています。

私の質問は、スタック全体をどのように整列させるのですか? なんとかパラを中央に揃えることができましたが、:align はスタックでは機能しません...

4

1 に答える 1

1

直接的な方法はないと思いますが、そのようなことを行うことができます(実際には水平方向と垂直方向のセンタリングを行います):

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

于 2012-06-28T22:06:01.373 に答える