1.创建页面
2.放三个控件:功能键、列表框、数据查询
3.数据查询控件需要指定一下查询语句,并进行表格设计,以便初始化表格
4.功能键控件添加点击事件处理
void Frm41::wMButton1_clk_cb(uint16_t code, LvEvent e) {
/*wMButton1(刷新表)的点击事件*/
string sql = "SELECT name FROM sqlite_master";
//获取默认数据库指针(可修改为自己的数据库)
IDatabase* pdb = DBMgr::getdb();
//获取数据库所有表
TTable tb = pdb->query(sql);
//加入到列表中
for(uint64_t i=0;i<tb.size();i++) {
wMList1->addOption(to_string(i), tb.getValue(i, 0));
}
}
5.列表框控件添加值变化事件处理
void Frm41::wMList1_vch_cb(uint16_t code, LvEvent e) {
//取表名
string tbname = wMList1->getSelectedText();
//取数据结构的语句(只取一行就行)
string sql = "SELECT * FROM " + tbname + " LIMIT 1";
//获取默认数据库指针(可修改为自己的数据库)
IDatabase* pdb = DBMgr::getdb();
TTable tb = pdb->query(sql);
//将数据列组合,用于表控件
vector<string> vec;
for(int i=0;i<tb.getColumnCount();i++) {
string colid = tb.getColumnName(i);
vec.push_back(colid+","+colid+",100");//(列id,列名,宽度)
}
//表控件重置列名
wMSqliteTable1->setMainArg(0, 0, -1, -1, StringUtil::join(vec,";"), 15, false, 6);
//数据重置
tv_wMSqliteTable1->m_tbl = tbname;
tv_wMSqliteTable1->m_key = tb.getColumnName(0);
//数据更新到表控件上
tv_wMSqliteTable1->drawData(true);
}
6.运行