Как смешать QStandardItemModel - PullRequest
       43

Как смешать QStandardItemModel

0 голосов
/ 26 апреля 2018

Я сделал TreeView, используя QStandardItemModel, как показано ниже изображение A

enter image description here

и у меня также есть QStandardItemModel, как показано ниже изображение B

Теперь я хочу смешать две модели, чтобы создать новую модель для TreeView. enter image description here

новый TreeView имеет как показано ниже изображение C :

enter image description here

Пример: * * тысяча двадцать-восемь

QStandardItemModel * fileTree = new QStandardItemModel();
QStandardItemModel * zipTree = new QStandardItemModel();
QStandardItemModel * fullTree = new QStandardItemModel();
......
......

fileTree - модель для изображения TreeView A;

zipTree - модель для TreeView image B;

Как их смешать, чтобы сделать fullTree для TreeView image C.

обновление:

3 данных имеют обе модели, отличаются только данные. Я хочу объединить данные для фото C формы A + B. файл a.zip -> папка a. и добавьте список файлов (изображение B) в новую папку (a)

P / S: Не использовать QfileSystemModel

1 Ответ

0 голосов
/ 27 апреля 2018
QTreeView t;
QStandardItemModel a;
t.setModel(&a);
t.show();

Я упростил Image A, сконструируйте его следующим образом:

QStandardItem* folder1 = new QStandardItem("folder1");
QStandardItem* zip = new QStandardItem("a.zip");
a.appendRow(folder1);
folder1->appendRow(zip);

Конструкт Image B:

QStandardItemModel b;
b.appendRow(new QStandardItem("filea"));
b.appendRow(new QStandardItem("fileb"));
b.appendRow(new QStandardItem("filec"));

"Mix" оба как Image C:

zip->setText(zip->text().remove(".zip"));
for (int i = 0; i < b.rowCount(); i++) {
    zip->appendRow(b.takeItem(i));
}
...