Russian Qt Forum
Ноябрь 23, 2024, 17:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QListView + QDirModel [решено]  (Прочитано 6683 раз)
Antiglobalist
Гость
« : Апрель 25, 2011, 23:43 »

В общем нужно выбрать директорию и чтобы отобразился список файлов из этой директории с картинками расширения(картинки можно самому добавить) ...
Пытался делать через QFileInfo , но через него не получилось отличить папку от файла без расширения
Идеальный способ QDirModel +QListView ... model->setRootPath(%DIR%) - директория задается , но при отображение во Вью выводятся диски (С , Д ...)
Может кто скажет в чем ошибка , или я задумал полный бред Улыбающийся
« Последнее редактирование: Апрель 26, 2011, 08:51 от Antiglobalist » Записан
madRoger
Гость
« Ответ #1 : Апрель 26, 2011, 00:01 »

Попробуйте к коду добавить QListView->setRootIndex(model->index(%DIR%));

UPD: Вместо QListView+QDirModel рекомендую QTreeView+QFileSystemModel
« Последнее редактирование: Апрель 26, 2011, 00:16 от madRoger » Записан
Antiglobalist
Гость
« Ответ #2 : Апрель 26, 2011, 08:50 »

Спасибо помогло =)
Вся выбранная директория высветилась .
Только одна вещь , использовал не QDirModel a QFileSystemModel
Записан
fedotok
Гость
« Ответ #3 : Январь 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);
}
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Январь 07, 2013, 16:39 »

может потому что на диске С файлы отсутствуют, а есть только папки (ты в фильтре задал только файлы)?

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
fedotok
Гость
« Ответ #5 : Январь 07, 2013, 18:30 »

меня просто интересует только последняя папка поэтому ее путь и запоминаю.

папка не пуста. и ее содержимое qDebag нормально выводил
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Январь 07, 2013, 20:10 »

раз нужна только последняя, то и цикл не нужен, а просто namepath = dir.entryInfoList().last().absoluteFilePath();

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.13 секунд. Запросов: 22.