Russian Qt Forum

Qt => Model-View (MV) => Тема начата: kalif от Декабрь 28, 2010, 11:06



Название: Перемещение по QFileSystemModel
Отправлено: kalif от Декабрь 28, 2010, 11:06
Приветствую.
Имеется QFileSystemModel в QTableView.
Никак не могу сообразить как перемещаться по папкам в модели. Подскажите пожалуйста.


Название: Re: Перемещение по QFileSystemModel
Отправлено: Пантер от Декабрь 28, 2010, 11:12
QModelIndex QFileSystemModel::setRootPath ( const QString & newPath )


Название: Re: Перемещение по QFileSystemModel
Отправлено: kalif от Декабрь 28, 2010, 11:26
Так пробовал, почему-то не работает.
При выставлении любого newPath, всегда отображается корневой каталог, причем не его содержимое, а только он сам.


Название: Re: Перемещение по QFileSystemModel
Отправлено: Fat-Zer от Декабрь 28, 2010, 17:15
при дабл клике на каталог меняете корень


Название: Re: Перемещение по QFileSystemModel
Отправлено: kalif от Январь 02, 2011, 21:31
Как перемещать разобрался.
Теперь проблема как получить список файлов в текущей директории. Если пройтись по индексам модели, то там будет лишь корень.
Код примерно такой:
Код:
model.setRootPath("C:/Games/");
qDebug() <<model.rowCount();  //выдаст нам 1
for (int i=0;i<model.rowCount();i++) {
    qDebug() <<model.index(i,0).data().toString(); //сдесь получим лишь "C:"
}



Название: Re: Перемещение по QFileSystemModel
Отправлено: Fat-Zer от Январь 02, 2011, 23:50
Код
C++ (Qt)
QModelIndex rp=model.setRootPath("C:/Games/");
qDebug() <<model.rowCount(rp);  //выдаст нам 1
for (int i=0;i<model.rowCount(rp);i++) {
   qDebug() <<model.index(i,0,rp).data().toString(); //сдесь получим лишь "C:"
}
 
Как-то так, если не задумыватьться... хотя быдлокодом попахивает...


Название: Re: Перемещение по QFileSystemModel
Отправлено: kalif от Январь 03, 2011, 10:49
Спасибо, помогло  :)
А еще не подскажете как узнать когда модель заполнила себя при смене каталога? В документации сказано, что модель заполняет себя в отдельном потоке, но ни слова ни сказано как узнать когда заполнение закончено.


Название: Re: Перемещение по QFileSystemModel
Отправлено: Fat-Zer от Январь 03, 2011, 11:05
что значит "модель заполнила себя"?


Название: Re: Перемещение по QFileSystemModel
Отправлено: kalif от Январь 03, 2011, 11:12
Это значит, что она получила список файлов в каталоге.


Название: Re: Перемещение по QFileSystemModel
Отправлено: Fat-Zer от Январь 03, 2011, 11:41
=\ На ум приходит только то, что он должен сигнал dataChanged или rowsInserted посылать... а как конкретно заполнение отловить - не знаю....


Название: Re: Перемещение по QFileSystemModel
Отправлено: kalif от Январь 05, 2011, 12:45
Оказывается есть сигнал directoryLoaded(QString), он то как раз и вызывается при окончании заполнения модели.