Skip to content

slider_t

概述

滑块控件。

slider_t是widget_t的子类控件,widget_t的函数均适用于slider_t控件。

在xml中使用"slider"标签创建滑块控件。如:

xml
<slider x="center" y="10" w="80%" h="20" value="10"/>
<slider style="img" x="center" y="50" w="80%" h="30" value="20" />
<slider style="img" x="center" y="90" w="80%" h="30" value="30" min="5" max="50" step="5"/>

更多用法请参考: basic

在c代码中使用函数slider_create创建滑块控件。如:

c
widget_t* slider = slider_create(win, 10, 10, 200, 30);
widget_on(slider, EVT_VALUE_CHANGED, on_changed, NULL);
widget_on(slider, EVT_VALUE_CHANGING, on_changing, NULL);

完整示例请参考: slider demo

可用通过style来设置控件的显示风格,如图片和颜色等等。如:

xml
<style name="img" bg_image="slider_bg" fg_image="slider_fg">
<normal icon="slider_drag"/>
<pressed icon="slider_drag_p"/>
<over icon="slider_drag_o"/>
</style>

更多用法请参考: theme default

函数

函数名称说明
slider_cast转换为slider对象(供脚本语言使用)。
slider_create创建slider对象
slider_get_widget_vtable获取 slider 虚表。
slider_set_bar_size设置bar的宽度或高度。
slider_set_drag_threshold设置拖拽临界值。
slider_set_line_cap设置前景色的线帽形状。(默认为跟随风格的圆角设置,但是在没有设置圆角的时候无法使用 "round" 来设置圆角)
slider_set_max设置滑块的最大值。
slider_set_min设置滑块的最小值。
slider_set_step设置滑块的拖动的最小单位。
slider_set_value设置滑块的值。
slider_set_value_internal设置滑块的值(public for test)。
slider_set_vertical设置滑块的方向。

属性

属性名称类型说明
bar_sizeuint32_t轴的宽度或高度(单位:像素),为0表示为控件的宽度或高度的一半,缺省为0。
drag_thresholduint32_t拖动临界值。
dragger_adapt_to_iconbool_t滑块的宽度或高度是否与icon适应,缺省为true。
dragger_sizeuint32_t滑块的宽度或高度(单位:像素),缺省为 bar_size * 1.5。
line_capchar*前景色的线帽形状。(取值:butt
maxdouble最大值。
mindouble最小值。
slide_with_barbool_t是否允许在轴上滑动来改变滑块位置,缺省为FALSE。
stepdouble拖动的最小单位。
valuedouble值。
verticalbool_t滑块的是否为垂直方向。

事件

事件名称类型说明
EVT_VALUE_WILL_CHANGEvalue_change_event_t值即将改变事件。
EVT_VALUE_CHANGINGvalue_change_event_t值正在改变事件(拖动中)。
EVT_VALUE_CHANGEDvalue_change_event_t值改变事件。

slider_cast 函数

  • 函数功能:

转换为slider对象(供脚本语言使用)。

  • 函数原型:
widget_t* slider_cast (widget_t* widget);
  • 参数说明:
参数类型说明
返回值widget_t*slider对象。
widgetwidget_t*slider对象。

slider_create 函数

  • 函数功能:

创建slider对象

  • 函数原型:
widget_t* slider_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h);
  • 参数说明:
参数类型说明
返回值widget_t*对象。
parentwidget_t*父控件
xxy_tx坐标
yxy_ty坐标
wwh_t宽度
hwh_t高度

slider_get_widget_vtable 函数

  • 函数功能:

获取 slider 虚表。

  • 函数原型:
const widget_vtable_t* slider_get_widget_vtable ();
  • 参数说明:
参数类型说明
返回值const widget_vtable_t*成功返回 slider 虚表。

slider_set_bar_size 函数

  • 函数功能:

设置bar的宽度或高度。

  • 函数原型:
ret_t slider_set_bar_size (widget_t* widget, uint32_t bar_size);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*控件对象。
bar_sizeuint32_tbar的宽度或高度。

slider_set_drag_threshold 函数

  • 函数功能:

设置拖拽临界值。

  • 函数原型:
ret_t slider_set_drag_threshold (widget_t* widget, uint32_t drag_threshold);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*控件对象。
drag_thresholduint32_t拖拽临界值。

slider_set_line_cap 函数

  • 函数功能:

设置前景色的线帽形状。(默认为跟随风格的圆角设置,但是在没有设置圆角的时候无法使用 "round" 来设置圆角)

  • 函数原型:
ret_t slider_set_line_cap (widget_t* widget, const char* line_cap);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*控件对象。
line_capconst char*前景色的线帽形状,取值为:butt

slider_set_max 函数

  • 函数功能:

设置滑块的最大值。

  • 函数原型:
ret_t slider_set_max (widget_t* widget, double max);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*控件对象。
maxdouble最大值

slider_set_min 函数

  • 函数功能:

设置滑块的最小值。

  • 函数原型:
ret_t slider_set_min (widget_t* widget, double min);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*控件对象。
mindouble最小值

slider_set_step 函数

  • 函数功能:

设置滑块的拖动的最小单位。

  • 函数原型:
ret_t slider_set_step (widget_t* widget, double step);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*控件对象。
stepdouble拖动的最小单位。

slider_set_value 函数

  • 函数功能:

设置滑块的值。

  • 函数原型:
ret_t slider_set_value (widget_t* widget, double value);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*控件对象。
valuedouble

slider_set_value_internal 函数

  • 函数功能:

设置滑块的值(public for test)。

  • 函数原型:
ret_t slider_set_value_internal (widget_t* widget, double value, uint32_t etype, bool_t force);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*控件对象。
valuedouble值。
etypeuint32_t触发事件。
forcebool_t不管有没有变化都设置。

slider_set_vertical 函数

  • 函数功能:

设置滑块的方向。

  • 函数原型:
ret_t slider_set_vertical (widget_t* widget, bool_t vertical);
  • 参数说明:
参数类型说明
返回值ret_t返回RET_OK表示成功,否则表示失败。
widgetwidget_t*控件对象。
verticalbool_t是否为垂直方向。

bar_size 属性

轴的宽度或高度(单位:像素),为0表示为控件的宽度或高度的一半,缺省为0。

  • 类型:uint32_t
特性是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改

drag_threshold 属性

拖动临界值。

  • 类型:uint32_t
特性是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改

dragger_adapt_to_icon 属性

滑块的宽度或高度是否与icon适应,缺省为true。

  • 类型:bool_t
特性是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改

dragger_size 属性

滑块的宽度或高度(单位:像素),缺省为 bar_size * 1.5。

  • 类型:uint32_t
特性是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改

line_cap 属性

前景色的线帽形状。(取值:butt|round,默认为跟随风格的圆角设置, 但是在没有设置圆角的时候无法使用 "round" 来设置圆角)

  • 类型:char*
特性是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改

max 属性

最大值。

  • 类型:double
特性是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改

min 属性

最小值。

  • 类型:double
特性是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改

slide_with_bar 属性

是否允许在轴上滑动来改变滑块位置,缺省为FALSE。

  • 类型:bool_t
特性是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改

step 属性

拖动的最小单位。

  • 类型:double
特性是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改

value 属性

值。

  • 类型:double
特性是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改

vertical 属性

滑块的是否为垂直方向。

  • 类型:bool_t
特性是否支持
可直接读取
可直接修改
可持久化
可脚本化
可在IDE中设置
可在XML中设置
可通过widget_get_prop读取
可通过widget_set_prop修改