Ruby Shoes:Element.width返回0
我不明白,如果宽度非零的元素返回0,为什么width函数会在所有元素上实现。下面为我返回0Ruby Shoes:Element.width返回0,ruby,shoes,Ruby,Shoes,我不明白,如果宽度非零的元素返回0,为什么width函数会在所有元素上实现。下面为我返回0 Shoes.app do p = para "My width is: " para p.width end 为什么呢?(app.width不返回0)问题在于,在绘制para对象时,它的大小是动态确定的。在创建第二个段落时,实际上还没有布置任何内容,因此尚未设置宽度。您可以看到,在绘制后访问宽度的效果与预期一致: Shoes.app do p = para "My width is: "
Shoes.app do
p = para "My width is: "
para p.width
end
为什么呢?(app.width不返回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
我明白了。非常感谢您的回复。