问题描述
我正在尝试创建看起来像交互式条形图的东西。我正在使用一种基于框列表创建图形的方法。
我正在使用 scaleSlider 以交互方式更改图中显示的框数。仅使用一个条形,性能还可以,但使用 4 个条形时,性能显着降低。
我尝试用 textfield 替换 scaleSlider,看看这是否能提高性能。但是,我需要一些帮助才能让事情运行起来。
下面的缩放框示例正在运行,结果如下面的屏幕截图。
figure scaledBox(){
int n = 10;
return vcat([ hcat([ scaleSlider(int() { return 0; },int () { return 50; },int () { return n; },void (int s) { n = s; },width(200)),text(str () { return "n: <n>";})
],left(),top(),resizable(false)),computefigure(figure (){ return visualizeAllUnitSizes(n); })
]);
}
如何实现文本字段以将 scaleSlider 替换为文本字段输入字段?我已经尝试过 Rascal 导师的 tfield() 示例,但我不确定如何创建一个小文本框,该文本框将包含一个 int 并在按下 Enter 后运行生成图形的方法。
public figure tfield(){
str entered = "";
return vcat([ Box(textfield("",void(str s){ entered = s;},fillColor("yellow")),size(20,30)),text(str(){return "entered: <entered>";},left())
]);
}
解决方法
回答我自己的问题;
我的 2015 年 iMac 5K 型号和我的 2016 年 MacBook Pro 之间的性能存在很大差异。在我的 MBP 上,滑块运行顺畅,在我的 iMac 上,滑块几乎无法使用。所以性能问题可能与我的 iMac 的高分辨率有关。