Название: QFileSystemModel; setFilter(QDir::Files) отображает директории Отправлено: a_nya от Январь 11, 2016, 11:31 Здравствуйте!
Создаю два окна, в одном выводится список директорий, во втором список файлов. На первый взгляд все работает нормально, но при повторном прохождении по директориям (текущую директорию изменяю через первое окно), во втором окне начинают появляться не только файлы, но еще и директории ??? Код: QFileSystemModel *m_fileModel; Код: m_dirModel = new QFileSystemModel(this); Код: void widget_screenshots::on_treeView_clicked(const QModelIndex &index) для наглядности: при открытии (http://storage4.static.itmages.ru/i/16/0111/h_1452501664_4610063_6e3492f5da.png) после прохождения по вложенным директориям (http://storage5.static.itmages.ru/i/16/0111/h_1452501709_6320432_c569278142.png) Название: Re: QFileSystemModel; setFilter(QDir::Files) отображает директории Отправлено: gil9red от Январь 11, 2016, 11:33 Молодец :)
Название: Re: QFileSystemModel; setFilter(QDir::Files) отображает директории Отправлено: a_nya от Январь 11, 2016, 11:34 Я рада, что кто-то по клавиатуре стучит более метко и быстро, чем я :)
Название: Re: QFileSystemModel; setFilter(QDir::Files) отображает директории Отправлено: a_nya от Январь 11, 2016, 11:44 А по теме есть комментарии? ;)
Название: Re: QFileSystemModel; setFilter(QDir::Files) отображает директории Отправлено: Bepec от Январь 11, 2016, 12:04 Если бы вы выложили архив с проектом, я бы посмотрел.
Название: Re: QFileSystemModel; setFilter(QDir::Files) отображает директории Отправлено: a_nya от Январь 11, 2016, 14:51 Набросала минимальный проект. Проблема так и осталась :(
http://www.filedropper.com/sandynavigatefilesystem (http://www.filedropper.com/sandynavigatefilesystem) Название: Re: QFileSystemModel; setFilter(QDir::Files) отображает директории Отправлено: a_nya от Январь 11, 2016, 15:43 немного изменила код слота, добавив setNameFilters(). такой вариант, как я понимаю, не подойдет для случая, когда был установлен свой namefilter
Код: void widget_screenshots::on_treeView_clicked(const QModelIndex &index) http://www.filedropper.com/sandynavigatefilesystem2 (http://www.filedropper.com/sandynavigatefilesystem2) Название: Re: QFileSystemModel; setFilter(QDir::Files) отображает директории Отправлено: Bepec от Январь 11, 2016, 15:52 Бага какая то.
Название: Re: QFileSystemModel; setFilter(QDir::Files) отображает директории Отправлено: __Heaven__ от Январь 11, 2016, 17:53 Есть тут какая-то логика. При входе в детей мы пополняем модель справа данными, которые не удаляются. Таким образом постепенно формируется полная иерархия.
Быть может каждый раз модель подсовывать новую, но это костыль. И ещё интересная надпись, смысл которой я не совсем понял: Цитировать void QFileSystemModel::setFilter(QDir::Filters filters) Sets the directory model's filter to that specified by filters. Note that the filter you set should always include the QDir::AllDirs enum value, otherwise QFileSystemModel won't be able to read the directory structure. |