## combo\_box\_t
### 概述
![image](images/combo_box_t_0.png)
下拉列表控件。
点击右边的按钮,可弹出一个下拉列表,从中选择一项作为当前的值。
combo\_box\_t是[edit\_t](edit_t.md)的子类控件,edit\_t的函数均适用于combo\_box\_t控件。
在xml中使用"combo_box"标签创建下拉列表控件。
列表选项可以直接写在"options"属性中。如:
```xml
| 函数名称 | 说明 | | -------- | ------------ | | combo\_box\_append\_option | 追加一个选项。 | | combo\_box\_cast | 转换combo_box对象(供脚本语言使用)。 | | combo\_box\_count\_options | 获取选项个数。 | | combo\_box\_create | 创建combo_box对象 | | combo\_box\_get\_option | 获取第index个选项。 | | combo\_box\_get\_text | 获取combo_box的文本。 | | combo\_box\_get\_value | 获取combo_box的值。 | | combo\_box\_reset\_options | 重置所有选项。 | | combo\_box\_set\_custom\_open\_popup | 设置自定义的打开弹出窗口的函数。 | | combo\_box\_set\_item\_height | 设置item高度。 | | combo\_box\_set\_localize\_options | 设置是否本地化(翻译)选项。 | | combo\_box\_set\_open\_window | 点击按钮时可以打开popup窗口,本函数可设置窗口的名称。 | | combo\_box\_set\_options | 设置选项。 | | combo\_box\_set\_selected\_index | 设置第index个选项为当前选中的选项。 | | combo\_box\_set\_value | 设置值。 | ### 属性
| 属性名称 | 类型 | 说明 | | -------- | ----- | ------------ | | item\_height | int32\_t | 下拉选项的高度。如果open_window为空,则使用缺省高度。 | | localize\_options | bool\_t | 是否本地化(翻译)选项(缺省为TRUE)。 | | open\_window | char* | 为点击按钮时,要打开窗口的名称。 | | options | char* | 设置可选项(冒号分隔值和文本,分号分隔选项,如:1:red;2:green;3:blue)。 | | selected\_index | int32\_t | 当前选中的选项。 | | value | int32\_t | 值。 | ### 事件
| 事件名称 | 类型 | 说明 | | -------- | ----- | ------- | | EVT\_VALUE\_WILL\_CHANGE | event\_t | 值即将改变事件。 | | EVT\_VALUE\_CHANGED | event\_t | 值改变事件。 | #### combo\_box\_append\_option 函数 ----------------------- * 函数功能: >
追加一个选项。 * 函数原型: ``` ret_t combo_box_append_option (widget_t* widget, int32_t value, const char* text); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | combo\_box对象。 | | value | int32\_t | 值。 | | text | const char* | 文本。 | #### combo\_box\_cast 函数 ----------------------- * 函数功能: >
转换combo_box对象(供脚本语言使用)。 * 函数原型: ``` widget_t* combo_box_cast (widget_t* widget); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | widget\_t* | combo\_box对象。 | | widget | widget\_t* | combo\_box对象。 | #### combo\_box\_count\_options 函数 ----------------------- * 函数功能: >
获取选项个数。 * 函数原型: ``` int32_t combo_box_count_options (widget_t* widget); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | int32\_t | 返回选项个数。 | | widget | widget\_t* | combo\_box对象。 | #### combo\_box\_create 函数 ----------------------- * 函数功能: >
创建combo_box对象 * 函数原型: ``` widget_t* combo_box_create (widget_t* parent, xy_t x, xy_t y, wh_t w, wh_t h); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | widget\_t* | 对象。 | | parent | widget\_t* | 父控件 | | x | xy\_t | x坐标 | | y | xy\_t | y坐标 | | w | wh\_t | 宽度 | | h | wh\_t | 高度 | #### combo\_box\_get\_option 函数 ----------------------- * 函数功能: >
获取第index个选项。 * 函数原型: ``` combo_box_option_t* combo_box_get_option (widget_t* widget, uint32_t index); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | combo\_box\_option\_t* | 返回index个选项。 | | widget | widget\_t* | combo\_box对象。 | | index | uint32\_t | 选项的索引。 | #### combo\_box\_get\_text 函数 ----------------------- * 函数功能: >
获取combo_box的文本。 * 函数原型: ``` const char* combo_box_get_text (widget_t* widget); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | const char* | 返回文本。 | | widget | widget\_t* | combo\_box对象。 | #### combo\_box\_get\_value 函数 ----------------------- * 函数功能: >
获取combo_box的值。 * 函数原型: ``` int32_t combo_box_get_value (widget_t* widget); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | int32\_t | 返回值。 | | widget | widget\_t* | combo\_box对象。 | #### combo\_box\_reset\_options 函数 ----------------------- * 函数功能: >
重置所有选项。 * 函数原型: ``` ret_t combo_box_reset_options (widget_t* widget); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | combo\_box对象。 | #### combo\_box\_set\_custom\_open\_popup 函数 ----------------------- * 函数功能: >
设置自定义的打开弹出窗口的函数。 * 函数原型: ``` ret_t combo_box_set_custom_open_popup (widget_t* widget, combo_box_custom_open_popup_t open_popup); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | combo\_box对象。 | | open\_popup | combo\_box\_custom\_open\_popup\_t | 回调函数。 | #### combo\_box\_set\_item\_height 函数 ----------------------- * 函数功能: >
设置item高度。 * 函数原型: ``` ret_t combo_box_set_item_height (widget_t* widget, uint32_t item_height); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | combo\_box对象。 | | item\_height | uint32\_t | item的高度。 | #### combo\_box\_set\_localize\_options 函数 ----------------------- * 函数功能: >
设置是否本地化(翻译)选项。 * 函数原型: ``` ret_t combo_box_set_localize_options (widget_t* widget, bool_t localize_options); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | combo\_box对象。 | | localize\_options | bool\_t | 是否本地化(翻译)选项。 | #### combo\_box\_set\_open\_window 函数 ----------------------- * 函数功能: >
点击按钮时可以打开popup窗口,本函数可设置窗口的名称。 * 函数原型: ``` ret_t combo_box_set_open_window (widget_t* widget, const char* open_window); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | combo\_box对象。 | | open\_window | const char* | 弹出窗口的名称。 | #### combo\_box\_set\_options 函数 ----------------------- * 函数功能: >
设置选项。 * 函数原型: ``` ret_t combo_box_set_options (widget_t* widget, const char* options); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | combo\_box对象。 | | options | const char* | 选项。 | #### combo\_box\_set\_selected\_index 函数 ----------------------- * 函数功能: >
设置第index个选项为当前选中的选项。 * 函数原型: ``` ret_t combo_box_set_selected_index (widget_t* widget, uint32_t index); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | combo\_box对象。 | | index | uint32\_t | 选项的索引。 | #### combo\_box\_set\_value 函数 ----------------------- * 函数功能: >
设置值。 * 函数原型: ``` ret_t combo_box_set_value (widget_t* widget, int32_t value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | combo\_box对象。 | | value | int32\_t | 值。 | #### item\_height 属性 ----------------------- >
下拉选项的高度。如果open_window为空,则使用缺省高度。 * 类型:int32\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可持久化 | 是 | | 可脚本化 | 是 | | 可在IDE中设置 | 是 | | 可在XML中设置 | 是 | | 可通过widget\_get\_prop读取 | 是 | | 可通过widget\_set\_prop修改 | 是 | #### localize\_options 属性 ----------------------- >
是否本地化(翻译)选项(缺省为TRUE)。 * 类型:bool\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可持久化 | 是 | | 可脚本化 | 是 | | 可在IDE中设置 | 是 | | 可在XML中设置 | 是 | | 可通过widget\_get\_prop读取 | 是 | | 可通过widget\_set\_prop修改 | 是 | #### open\_window 属性 ----------------------- >
为点击按钮时,要打开窗口的名称。 * 类型:char* | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可持久化 | 是 | | 可脚本化 | 是 | | 可在IDE中设置 | 是 | | 可在XML中设置 | 是 | | 可通过widget\_get\_prop读取 | 是 | | 可通过widget\_set\_prop修改 | 是 | #### options 属性 ----------------------- >
设置可选项(冒号分隔值和文本,分号分隔选项,如:1:red;2:green;3:blue)。 * 类型:char* | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可持久化 | 是 | | 可脚本化 | 是 | | 可在IDE中设置 | 是 | | 可在XML中设置 | 是 | | 可通过widget\_get\_prop读取 | 是 | | 可通过widget\_set\_prop修改 | 是 | #### selected\_index 属性 ----------------------- >
当前选中的选项。 * 类型:int32\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可持久化 | 是 | | 可脚本化 | 是 | | 可在IDE中设置 | 是 | | 可在XML中设置 | 是 | | 可通过widget\_get\_prop读取 | 是 | | 可通过widget\_set\_prop修改 | 是 | #### value 属性 ----------------------- >
值。 * 类型:int32\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可持久化 | 是 | | 可脚本化 | 是 | | 可在IDE中设置 | 是 | | 可在XML中设置 | 是 | | 可通过widget\_get\_prop读取 | 是 | | 可通过widget\_set\_prop修改 | 是 |