使用鞋子时对齐堆栈

  • 本文关键字:对齐 堆栈 ruby shoes
  • 更新时间 :
  • 英文 :


我正在使用Shoes作为Ruby的GUI工具包。

我的问题是你如何对齐整个堆栈?我设法将段落对齐到中心,但 :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

相关内容

  • 没有找到相关文章

最新更新