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实战派学习群
今天的文章qt tableview用法_总结格式示例范文「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/71480.html