## 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 ``` 列表选项也可以放在独立的窗口中,用属性"open_window"指定窗口的名称。如: ```xml ``` language.xml: ```xml ``` > 更多用法请参考:[combo_box.xml](https://github.com/zlgopen/awtk/blob/master/design/default/ui/combo_box.xml) 如果在文本比较长时,希望在获得焦点时文本自动滚动,可以放入一个hscroll_label为子控件,并命名为"value"。如: ```xml ``` * 2.combobox的弹出popup窗口的style名称为combobox_popup,可以在窗体样式文件中设置。 ```xml ``` > 更多用法请参考:[theme default](https://github.com/zlgopen/awtk/blob/master/design/default/styles/default.xml#L422) ---------------------------------- ### 函数

| 函数名称 | 说明 | | -------- | ------------ | | 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\_remove\_option | 删除选项。 | | 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 | value\_change\_event\_t | 值即将改变事件。 | | EVT\_VALUE\_CHANGED | value\_change\_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\_remove\_option 函数 ----------------------- * 函数功能: >

删除选项。 * 函数原型: ``` ret_t combo_box_remove_option (widget_t* widget, int32_t value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | combo\_box对象。 | | value | int32\_t | 值。 | #### 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, combo_box_custom_on_layout_combobox_popup_t on_layout_combobox_popup); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | widget | widget\_t* | combo\_box对象。 | | open\_popup | combo\_box\_custom\_open\_popup\_t | 回调函数。 | | on\_layout\_combobox\_popup | combo\_box\_custom\_on\_layout\_combobox\_popup\_t | layout 的回调函数。 | #### 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修改 | 是 |