鞋子:Element.width返回0

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

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

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

问题是para对象的大小是在绘制时动态确定的。 在您创建第二个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