Не могу понять что не так в QFileSystemModel |
Здравствуйте, гость ( Вход | Регистрация )
Не могу понять что не так в QFileSystemModel |
ЙаМайскЫйПчОЛ |
12.7.2010, 11:49
Сообщение
#1
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
Доброго времени сутрок.
Недавно на багтрекере Qt я запостил багу, на мой взгляд, критичную. Не вызывался метод paintEvent для виджетов внутри QFormLayout, но самое интересное не всегда, а только в случае запуска с ключиком -style plastique или -style mac. И Вот не прошло и месяца я на пороге нового открытия) Товарищи помогите разобраться: вот код Раскрывающийся текст
Раскрывающийся текст
Раскрывающийся текст
Если вы попробуете скомпилировать это, то должны получить вполне работоспособное приложение. Работает, т.е. должно оно работать так... вводите путь в lineEdit -> жмыкаете кнопку update -> view начинает показывать содержание директории Эта часть работает корректно. но внимание в консоль на вывод QDebug Когда вы меняте путь и нажимаете кнопку в дебаге твориться нечто не понятное в моем случае вывод таков Раскрывающийся текст current dir from model "/boot" current dir from view "boot" has index false has child true first child "" если нажать кнопку еще раз то... Раскрывающийся текст current dir from model "/boot" current dir from view "boot" has index false has child true first child "" current dir from model "/boot" current dir from view "boot" has index true has child true first child "grub" чем можно объяснить такое поведение??? Заранее благодарю всех заинтересовавшихся Сообщение отредактировал ЙаМайскЫйПчОЛ - 12.7.2010, 19:45 |
|
|
igor_bogomolov |
12.7.2010, 22:33
Сообщение
#2
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Если я правильно понял вопрос, тебя интересует, почему после смены корневого индекса ты не можешь получить данные о чайлдах этого индекса (first child "" ), а после второго нажатия - получаешь (first child "grub").
Для ответа достаточно посмотреть в ассистенте описание на класс QFileSystemModel Цитата Unlike the QDirModel, QFileSystemModel uses a separate thread to populate itself so it will not cause the main thread to hang as the file system is being queried. Т.е. в момент когда ты делаешь model_->setRootPath(path) (точнее сразу после этого действия) у тебя нет информации о чайлдах устанавливаемого индекса. Если эта информация тебе нужна, подпишись на сигнал Цитата void QFileSystemModel::rootPathChanged ( const QString & newPath ) [signal] , и в обработчике уже получай список чайлдов
|
|
|
ЙаМайскЫйПчОЛ |
13.7.2010, 0:18
Сообщение
#3
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
RTFM!!!!!!!!!!АААААААААААААААА
ладно спишем на ЖАРУ.... |
|
|
ЙаМайскЫйПчОЛ |
13.7.2010, 13:41
Сообщение
#4
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
Возникла проблема.
Я выставил дял QFileSystemModel setFilter(QDir::Files) если я меняю директори, а потом перехожу на уровень выше этой директории, то кроме файлов отображаеться и название прошлой дирректории, т.е. как она попадает в представление?? Воопще в идеале я получаю список файлов в директории узнаю даты их создания а потом фильтрую, в проксирующей модели диапазоном дат какая ирархия у этой модели... т.е. как обратится к файлам в директории, я запрашиваю child, но она возвращает только индекс дочерних директорий |
|
|
ЙаМайскЫйПчОЛ |
13.7.2010, 14:18
Сообщение
#5
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
Нашел способ полцчения списка дат для файлов.. но мне кажеться он кривоват... хотя что я знаю про дизайн
Сообщение отредактировал Litkevich Yuriy - 13.7.2010, 16:34
Причина редактирования: используй тег code
|
|
|
Текстовая версия | Сейчас: 2.12.2024, 10:37 |