VisualWorks Smalltalk - 在运行时设置滑块值

时间:2012-11-18 14:56:22

标签: smalltalk visualworks

我有一个滑块,想要在某些功能中更改其值。我试过这样的事情:

(builder componentAt: #SliderR) widget model setValue: 124.

但它不起作用。 (值已更改,但标记保持在相同位置)。

2 个答案:

答案 0 :(得分:1)

尝试值:而不是setValue:

访问此ValueHolder的咒语似乎很长很脆弱。请务必将此类代码包装在明确的消息选择器下。或者可以考虑在应用程序的实例变量中共享此状态...

答案 1 :(得分:1)

通常,您可以在UIPainter中将滑块添加到画布,然后在GUI Painter工具窗口中为其输入方面名称。该窗口工具栏中的第二个按钮称为“定义”。单击此处以创建一个方法,该方法返回带有滑块值的ValueHolder。然后,您可以使用#value:在运行时更改ValueHolder的值,它将更新滑块的值并重绘它。

对于某些背景:ValueHolders持有一个值,其他对象可以注册为它的依赖项,以便在值更改时得到通知。这就是UI的功能,这样您就可以更新ValueHolder,UI将自动更新。