Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Antiglobalist от Апрель 25, 2011, 23:43



Название: QListView + QDirModel [решено]
Отправлено: Antiglobalist от Апрель 25, 2011, 23:43
В общем нужно выбрать директорию и чтобы отобразился список файлов из этой директории с картинками расширения(картинки можно самому добавить) ...
Пытался делать через QFileInfo , но через него не получилось отличить папку от файла без расширения
Идеальный способ QDirModel +QListView ... model->setRootPath(%DIR%) - директория задается , но при отображение во Вью выводятся диски (С , Д ...)
Может кто скажет в чем ошибка , или я задумал полный бред :)


Название: Re: QListView + QDirModel
Отправлено: madRoger от Апрель 26, 2011, 00:01
Попробуйте к коду добавить QListView->setRootIndex(model->index(%DIR%));

UPD: Вместо QListView+QDirModel рекомендую QTreeView+QFileSystemModel


Название: Re: QListView + QDirModel
Отправлено: Antiglobalist от Апрель 26, 2011, 08:50
Спасибо помогло =)
Вся выбранная директория высветилась .
Только одна вещь , использовал не QDirModel a QFileSystemModel


Название: Re: QListView + QDirModel [решено]
Отправлено: fedotok от Январь 07, 2013, 13:57
Почемуто вывод только папку C: и без содержимого

имею

Код:
foreach (QFileInfo mitm, dir.entryInfoList())
    {
//        qDebug() << mitm.absoluteFilePath();
        namepath = mitm.absoluteFilePath();
    }
//    qDebug() << namepath;
    emit signal_unzip_done(namepath);

Код:
void View::unzipdone(QString namepath)
{
    filemodel = new QFileSystemModel(this);
    filemodel->setFilter(QDir::NoDotAndDotDot | QDir::Files);
    ui->listView->setRootIndex(filemodel->index(namepath));
    ui->listView->setModel(filemodel);
}


Название: Re: QListView + QDirModel [решено]
Отправлено: kambala от Январь 07, 2013, 16:39
может потому что на диске С файлы отсутствуют, а есть только папки (ты в фильтре задал только файлы)?

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


Название: Re: QListView + QDirModel [решено]
Отправлено: fedotok от Январь 07, 2013, 18:30
меня просто интересует только последняя папка поэтому ее путь и запоминаю.

папка не пуста. и ее содержимое qDebag нормально выводил


Название: Re: QListView + QDirModel [решено]
Отправлено: kambala от Январь 07, 2013, 20:10
раз нужна только последняя, то и цикл не нужен, а просто namepath = dir.entryInfoList().last().absoluteFilePath();

а выводит только диск С потому что ты отображаешь через листвью, все остальные папки являются «детьми», что листвью отобразить не способен. если сменишь отображение на тривью, сразу увидишь всё что нужно в дочерних ветках.