首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何混合QStandardItemModel

如何混合QStandardItemModel
EN

Stack Overflow用户
提问于 2018-04-26 11:07:49
回答 1查看 352关注 0票数 0

我用TreeView制作了一个QStandardItemModel,就像下面的图像A

我还有一个类似于QStandardItemModel的图像B

现在,我希望将两个模型混合在一起,为TreeView创建一个新的模型

新的TreeView像下面的图像C

示例:

代码语言:javascript
复制
QStandardItemModel * fileTree = new QStandardItemModel();
QStandardItemModel * zipTree = new QStandardItemModel();
QStandardItemModel * fullTree = new QStandardItemModel();
......
......

fileTree是TreeView图像A的模型;

zipTree是TreeView图像B的模型;

如何将它们混合在一起,使fullTree用于TreeView图像C。

更新:

3数据有两个模型,只有数据是不同的。我想将照片C表格A+ B的数据合并为a.zip ->文件夹A,并将a(图像B)的文件列表添加到新文件夹(a)中。

P/S:不要使用QfileSystemModel

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-27 03:09:05

代码语言:javascript
复制
QTreeView t;
QStandardItemModel a;
t.setModel(&a);
t.show();

我简化了Image A,构造如下:

代码语言:javascript
复制
QStandardItem* folder1 = new QStandardItem("folder1");
QStandardItem* zip = new QStandardItem("a.zip");
a.appendRow(folder1);
folder1->appendRow(zip);

构建Image B

代码语言:javascript
复制
QStandardItemModel b;
b.appendRow(new QStandardItem("filea"));
b.appendRow(new QStandardItem("fileb"));
b.appendRow(new QStandardItem("filec"));

“混合”两个词都是Image C

代码语言:javascript
复制
zip->setText(zip->text().remove(".zip"));
for (int i = 0; i < b.rowCount(); i++) {
    zip->appendRow(b.takeItem(i));
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50041427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档