前言
Qt将SqLite数据库中表格转换成QTreeWidget形式并显示
提示:以下是本篇文章正文内容,下面案例可供参考
一、准备好数据库表格(怎样操作数据库本博主其他文章中有介绍)
示例:
转为QTreeWidget形式如下:
二、具体操作
1.头文件.h中添加私有槽函数
代码如下(示例):
private slots:
void departTree(QString root, QTreeWidgetItem *item);
void departTree(QString root,QTreeWidget *tree);
2.源文件.cpp中实现定义
代码如下(示例):
//树结构
void M_homepage::departTree(QString root, QTreeWidgetItem *item)
{
QSqlQuery query;
query.exec("select 名称,编号 from program_info where 上级项目编号='"+root+"'"); //设置查询条件
while (query.next())
{
QString NAME = query.value(0).toString(); //获取项目名称
QString NUMBER = query.value(1).toString(); //获取项目编号
QTreeWidgetItem *items =
new QTreeWidgetItem(item,QStringList(QString(NAME)));
/*创建新的ITEM,插入到ITEM中,设置编号为当前查询到的项目编号*/
if(!NAME.isEmpty())
{
departTree(NUMBER,items); //递归,若传入查询到的部门,判断是否还有下级
}
}
return;
}
//树结构
void M_homepage::departTree(QString root, QTreeWidget *tree)
{
QSqlQuery query;
query.exec("select 名称,编号 from program_info where 上级项目编号='"+root+"'");
while (query.next())
{
QString NAME = query.value(0).toString();
QString NUMBER = query.value(1).toString();
QTreeWidgetItem *item =
new QTreeWidgetItem(tree,QStringList(QString(NAME)));
/*创建ITEM,由于是最高项目,插入对象为TreeWidget*/
if(!NAME.isEmpty())
{
departTree(NUMBER,item); //开启递归
}
}
return;
}
3.调用
ui->treeWidget->clear();
departTree("",ui->treeWidget);
总结
以上就是今天要讲的内容,本文仅仅简单介绍了QTreeWidget控件的使用,而Qt creator提供了大量能使我们快速便捷地处理数据的函数和方法,对于qt中的其他操作问题,请各位大神移步博主其他文章或是关注博主等待后续发布。