1

如果宽度函数为非零宽度元素返回 0,我不明白为什么要在所有元素上实现宽度函数。以下为我返回 0。

Shoes.app do
  p = para "My width is: "
  para p.width
end

这是为什么?(app.width 不返回 0)

4

1 回答 1

0

问题是 para 对象的大小是在绘制时动态确定的。在您创建第二个段落时,实际上尚未布置任何内容,因此尚未设置宽度。您可以看到绘制后访问宽度按预期工作:

Shoes.app do
  p = para "My width is: "
  @para = para p.width
  button 'Get Width' do
    @para.text = p.width
  end
end

解决这个问题的方法是使用 start 方法,该方法在第一次绘制包含槽时调用:

Shoes.app do
  p = para "My width is: "
  width = para p.width
  start do
    width.text = p.width
  end
end
于 2009-08-18T13:16:08.017 回答