LINUX.ORG.RU

[Qt][QTreeView и QDirModel] Показ корневой папки в модели.


0

1

Итак, есть treeview и модель, необходимо сделать так, чтобы дерево начиналось с корневой папки.

Делаю так:

 
model = new QDirModel();
model->setFilter(QDir::Dirs | QDir::NoDotAndDotDot);
ui->treeView->setModel(model);    
ui->treeView->setRootIndex(model->index(rootfolder));

Допустим задаю rootfolder = /media/DATA, получаю: http://rghost.ru/3338669/image.png, а необходимо получить http://rghost.ru/3338680/image.png, т.е. сама корневая папка должна показываться в дереве.

Как это можно реализовать?


QDirModel устарела, используй лучше QFileSystemModel

и в любом случае, тебе надо будет прокси-модель сделать

dt1 ★★ ()
Ответ на: комментарий от Kosyak

Kosyak Нету.

dt1 Можно чуть подробнее?

QFileSystemModel почему-то показывает стрелочки разворачивания даже у папок без вложенных папок.

onto ()
Ответ на: комментарий от onto

> QFileSystemModel почему-то показывает стрелочки разворачивания даже у папок без вложенных папок.

это для скорости, по идее все должно обновляться при раскрытии другого узла, но по идее можно унаследоваться и переопределить hasChildren

с прокси-моделью я протупил, это довольно сложно, так делать не надо, используй QTreeView::setRootIndex

dt1 ★★ ()
Ответ на: комментарий от onto

сорри, протупил вчера

в общем, тут два выхода - либо создать свою модель, но это очень муторно, либо можно попробовать setRootIndex устанавливать на каталог уровнем выше и скрывать лишнее с помощью setRowHidden

dt1 ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.