![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
mezmay |
![]()
Сообщение
#1
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
Требуется отображать дерево файловой системы, при выделении папки вычислять статистику по ней: количество файлов, общий и средний размер файлов и т.п. Все это должно происходить без замирания интерфейса с отображением статуса операции. Модели QDirModel и QFileSystemModel не позволяют даже просто открыть большую папку без блокировки интерфейса. Как лучше решить задачу?
|
|
|
wiz29 |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
собирать информацию вне gui потока, и возвращать в gui поток только конечные результаты.
|
|
|
silver47 |
![]()
Сообщение
#3
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 356 Регистрация: 1.4.2010 Пользователь №: 1584 Спасибо сказали: 40 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
mezmay |
![]()
Сообщение
#4
|
![]() Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
Ну это и ежику понятно что надо в другом потоке считать
![]() Только как именно все это реализовать? Я так понимаю надо создать класс модели, унаследованный от QAbstractItemModel. Он должен представлять файловую систему как и QDirModel или QFileSystemModel, но так чтобы при нажатии на плюсик в представлении в моей модели вызывался бы асинхронный метод обработки папки. Как-то так... Как это конкретно сделать? При наследовании от QAbstractItemModel какие методы переопределять и как? |
|
|
RazrFalcon |
![]()
Сообщение
#5
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Я так понимаю надо создать класс модели, унаследованный от QAbstractItemModel. Он должен представлять файловую систему как и QDirModel или QFileSystemModel, но так чтобы при нажатии на плюсик в представлении в моей модели вызывался бы асинхронный метод обработки папки. А смысл? Диск то один. Будет ли прирост от использования нескольких потоков? А то что гуи зависает... хз. Есть много способов: http://doc.qt.nokia.com/qq/qq27-responsive-guis.html PS: я в этом не силен, но с точки зрения логики... |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 29.5.2025, 21:04 |