QTreeView使用总结1,一个简单示例

QTreeView使用总结 专栏收录该内容
19 篇文章 42 订阅

1,简介

本文为一个最简单的QTreeView初始化过程的示例。

除去了一切操作响应等细节,只是展示使QTreeView显示出带层次结构的数据,至少需要哪些代码。

只附带了一点点常用设置项。

2,效果

3,代码

一个QTreeView插入三层数据的最简单代码示例:

void MainWindow::InitTree()
{
    //1,构造Model,这里示例具有3层关系的model构造过程
    QStandardItemModel* model = new QStandardItemModel(ui->treeView);
    model->setHorizontalHeaderLabels(QStringList()<<QStringLiteral("序号") << QStringLiteral("名称"));     //设置列头
    for(int i=0;i<5;i++)
    {
        //一级节点,加入mModel
        QList<QStandardItem*> items1;
        QStandardItem* item1 = new QStandardItem(QString::number(i));
        QStandardItem* item2 = new QStandardItem(QStringLiteral("一级节点"));
        items1.append(item1);
        items1.append(item2);
        model->appendRow(items1);

        for(int j=0;j<5;j++)
        {
            //二级节点,加入第1个一级节点
            QList<QStandardItem*> items2;
            QStandardItem* item3 = new QStandardItem(QString::number(j));
            QStandardItem* item4 = new QStandardItem(QStringLiteral("二级节点"));
            items2.append(item3);
            items2.append(item4);
            item1->appendRow(items2);

            for(int k=0;k<5;k++)
            {
                //三级节点,加入第1个二级节点
                QList<QStandardItem*> items3;
                QStandardItem* item5 = new QStandardItem(QString::number(k));
                QStandardItem* item6 = new QStandardItem(QStringLiteral("三级节点"));
                items3.append(item5);
                items3.append(item6);
                item3->appendRow(items3);
            }
        }
    }
    //2,给QTreeView应用model
    ui->treeView->setModel(model);
}

4,说明

可以看到,要使一个QTreeView能够显示数据,需要构造一个model并设置给QTreeView。

Qt提供了一些类型的Model,其中最常用的就是这个QStandardItemModel类,一般可以满足大部分需求。

另外,表头的内容也由这个model管理,setHorizontalHeaderLabels 函数可以设置共有多少列、每列文字。

一级节点直接使用 appendRow 方法添加到model上,次级节点则是添加到第一个父级节点上,依次构成父子关系树。

5,源码下载

链接:https://pan.baidu.com/s/12S5_vAw_YM7qdT_p3r5WFA 
提取码:oeas

网盘若失效,可在群文件下载:

群号码:1149411109 (若满加2群:917341904)

群名称:Qt实战派学习群

  • 15
    点赞
  • 2
    评论
  • 58
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值