我想知道如何改变Fl_Hor_Value_Slider的当前值区域的宽度。问题是,我希望能够选择年份(4位数),而滑块一侧的空间不足以正确显示年份数字。
我已经看过的文件,并尝试了以下功能:
slider_size() maximum() minimum() range()
但他们似乎并没有做我想做的。我觉得我好像错过了一些明显的东西。有什么想法吗?
mcdcgff01#
问题是尺寸硬编码为35(水平)或25(垂直)。您需要修改Fl_Value_Slider. cxx。在例程绘制中,它具有
if (horizontal()) { bww = 35; sxx += 35; sww -= 35; } else { syy += 25; bhh = 25; shh -= 25; }
这是基于textsize_为10。如果你改变文本大小,那么它需要根据文本大小增加。
if (horizontal()) { int width = textsize() * 3 + 5; bww = width; sxx += width; sww -= width; } else { int height = textsize() * 2 + 5; syy += height; bhh = height; shh -= height; }
然后重建fltk库。保留这个补丁或将其发送到FLTK,并在从FLTK获得更新时进行检查。
Fl_Hor_Value_Slider* o = new Fl_Hor_Value_Slider(10, 50, 250, 50, ""); o->tooltip("Value Slider"); o->selection_color((Fl_Color)1); o->textsize(25); o->value(2000) o->range(2000, 2099); o->precision(0);
或者,基于Fl_Hor_Value_Slider创建自己的Hor_Value_Slider并覆盖绘制方法。
bvjveswy2#
为了记录在案:同时,FLTK 1.4.0(尚未发布)为滑块提供了新方法:value_width(int)和value_height(int)。这些方法允许您在水平滑块上设置值字段的宽度,在垂直滑块上设置值字段的高度。文档可在此处找到:https://www.fltk.org/doc-1.4/classFl__Value__Slider.html
value_width(int)
value_height(int)
2条答案
按热度按时间mcdcgff01#
问题是尺寸硬编码为35(水平)或25(垂直)。您需要修改Fl_Value_Slider. cxx。在例程绘制中,它具有
这是基于textsize_为10。如果你改变文本大小,那么它需要根据文本大小增加。
然后重建fltk库。保留这个补丁或将其发送到FLTK,并在从FLTK获得更新时进行检查。
或者,基于Fl_Hor_Value_Slider创建自己的Hor_Value_Slider并覆盖绘制方法。
bvjveswy2#
为了记录在案:同时,FLTK 1.4.0(尚未发布)为滑块提供了新方法:
value_width(int)
和value_height(int)
。这些方法允许您在水平滑块上设置值字段的宽度,在垂直滑块上设置值字段的高度。文档可在此处找到:https://www.fltk.org/doc-1.4/classFl__Value__Slider.html