如何使一个元素占据所有宽度 - 剩下的?

时间:2009-08-18 14:58:33

标签: ruby shoes

Shoes.app do
  flow do
    file = "something with variable length"
    para "Loading #{file}: "
    progress :width => -300
  end
end

从代码中我可以看到,我正在尝试显示从文本末尾到应用程序窗口右边缘的进度条。 当文本具有固定长度时,此解决方案可以工作,但是一旦文本在上面的片段中改变了长度,它就不会出现:进度条的空间太小或太多。

这个问题有解决方法吗?

我试着询问para元素的宽度,但它是0 ???

1 个答案:

答案 0 :(得分:1)

在我mentioned before时,您必须在计算后获得文本块的宽度。试试这个:

Shoes.app do
  flow do
    file = "something with variable length"
    @p = para "Loading #{file}: "
    @prog = progress
    start do
      @prog.width = @prog.parent.width - @p.width
    end
  end
  button 'Change text!' do
    text = @p.text
    @p.text = text + '1'
    @prog.width = @prog.parent.width - @p.width    
  end
end