Qt 遍历QTreeView 获取所有节点数据

一、如下图树形结构

  

 

二、实现代码

  model 为私有变量,QStandardItemModel *model;

void ParamSettingDlg::GetNode()
{
    for(int i = 0;i < model->rowCount() ;i++)
    {
        QStandardItem *item = model->item(i);

        qDebug() <<"item = " << item->text();
        GetItem(model->item(i) );
    }
}

GetItem为递归函数,这样可以遍历到所有的节点

void ParamSettingDlg::GetItem(QStandardItem *item)
{
    Q_ASSERT(item);
    if(item->hasChildren())
    {
        for(int i = 0;i < item->rowCount() ;i++)
        {
            QStandardItem * childitem = item->child(i);
            qDebug() << "childitem = " << childitem->text();
            GetItem(childitem);
        }
    }
}

 

posted on 2019-09-23 17:18  jiangsion  阅读(14738)  评论(1编辑  收藏  举报

导航