Как смешать QStandardItemModel

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

введите здесь описание изображения

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

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

новый TreeView имеет следующее изображение C:

введите здесь описание изображения

Пример:

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. и добавьте список файлов (изображение B) в новую папку (a)

P/S: не используйте QfileSystemModel


person kien bui    schedule 26.04.2018    source источник


Ответы (1)


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"));

"Смешать" как Image C:

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