QT(27)-mySql-TreeWidget-动态构建目录-递归和非递归实现-实例源码

     实际中,我们经常要求点击按钮,读取数据库中的某张表,用树形结构显示表中的数据关系。就是按左边数据查询内容生成右边的表。比如:

              

为了便于理解,我借用了上图。理解要实现什么就行。

这里只讲技术,于是我把业务剥离,抽象成数字。

    

输入为左图所示,输出为右图所示。

    有两种实现路径:

     1.硬代码写。

      2.递归。


  1. 硬代码写

2.递归。

2.1.什么是递归?

   简单的说就是自己调用自己。

   伪代码就是 def countdown(i):

                   print i

                 if i<=0: ---基线条件

                    return

                 else:

                   countdown(i-1)

   如果没有“基线条件”会没完没了。

2.2 此处的递归函数

   根节点  void departTree(QTreeWidget *root_WidgetItem,QString l_dpParentId)

    子节点  void departTree(QTreeWidgetItem *item_WidgetItem,QString l_dpParentId)

 

  根节点  void departTree(QTreeWidget *root_WidgetItem,QString l_dpParentId)

  {

      //根据l_dpParentId 查询

      while (query.next())

   {

if(!str_dpName.isEmpty())//结果不为空,

                {

               departTree(root_WidgetItem,l_dpParentId);// 调用自己

}

}

}

  子节点  void departTree(QTreeWidgetItem *item_WidgetItem,QString l_dpParentId)

{}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值