与下拉框相似的还有滑动轴和列表框控件,如下所示
这里仅对下拉框作讲解。滑动轴和列表框常见方法约同下拉框控件,具体使用还需访问STTList.h
,STTRoller.h
等文件
/**
* @LEVEL1
* @brief 设置内置表的选项。
* @param options 选项,json格式
* @param selectedIndex 选中项id
*/
void setOptions(const string& options = "", int selectedIndex=-1);
/**
* @LEVEL1
* @brief 清除选项(内置表或绑定表均可)
*/
void clearOptions();
/**
* @LEVEL1
* @brief 追加选项(内置表)
*/
void addOption(const string& id, const string& name);
/**
* @LEVEL1
* @brief 获取选项总数(内置表或绑定表均可)
*/
int getOptionCount();
/**
* @LEVEL0
* @brief 获取选项个数
* @return
*/
int getOptionCnt();
/**
* @LEVEL0
* @brief 获取选中项序号
* @return
*/
int getSelectedIndex();
/**
* @LEVEL0
* @brief 获取选中项文本
* @return
*/
string getSelectedText();
/**
* @LEVEL0
* @brief 获取选中项的值
* @return
*/
string getSelectedValue();
/**
* @LEVEL1
* @brief 弹出下拉框
* @return
*/
STTDropdown* expand();
/**
* @LEVEL1
* @brief 收起下拉框
* @return
*/
STTDropdown* collapse();
/**
* @LEVEL2
* @brief 设置基本参数
* @param x x坐标
* @param y y坐标
* @param w 宽
* @param h 高
* @param options 选项(json格式)
* @param selected 选中项
* @param dir 下拉方向 1~左 2~右 4~上 8~下
* @param symbol 下拉按钮图片
* @param h_list 下拉框的最大高度,默认-1
*/
void setMainArg(int x=0, int y=0, int w=100, int h=32, const string& options="", int selected=-1, int dir=8, const void* symbol=NULL, int h_list=-1);
/**
* @LEVEL2
* @brief 设置基本样式参数
* @param r 圆角半径
* @param c1 主色
* @param c2 次色(渐变时有效)
* @param dir 渐变方向(0~不渐变 1~上下 2~左右)
* @param w_border 边框宽
* @param c_border 边框颜色
* @param w_shadow 阴影宽
* @param c_shadow 阴影颜色
*/
void setMainStyle(int r, int c1, int c2, int dir, int w_border, int c_border, int w_shadow, int c_shadow);
/**
* @LEVEL2
* @brief 设置选中项样式参数
* @param r 圆角半径
* @param c1 主色
* @param c2 次色(渐变时有效)
* @param dir 渐变方向(0~不渐变 1~上下 2~左右)
* @param w_border 边框宽
* @param c_border 边框颜色
*/
void setListSelectedStyle(int r, int c1, int c2, int dir, int w_border, int c_border);
下面是一段通过代码手动添加选项的案例
for(int i = 2020;i<=2050;i++){
vector<KV_Str_Str> vec;
KV_Str_Str kv1,kv2;
kv1.k = "id";
kv1.v = to_string(i);
vec.push_back(kv1);
kv2.k = "name";
kv2.v = to_string(i);
vec.push_back(kv2);
vec1.push_back(vec);
}
string json1 = "";
Util::convertArrayToJson(vec1,json1);
wMDropdown1->setOptions(json1, 0);