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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Обновить QTreeWidget  (Прочитано 3622 раз)
Al.Der
Гость
« : Сентябрь 18, 2013, 19:13 »

Есть QTreeWidget, к нему привязана модель QFileSystemModel => в дереве отображается файловая система.
При создании/ удалении файла в текущем каталоге, я думаю, посылается какой-то сигнал, что нужно обновить наш виджет и/или модель.
Так вот какой может это быть сигнал или что-то другое?

По сути мне нужно обновить список файловой системы.
Можно это сделать вручную? Что-то типа qtreewidget->refresh() Непонимающий

Просто после манипуляций в программе в QTreeWidget данные то не изменяются, то изменяются через рандомное количество секунд, а если смотреть через виндовский експлорер на папку - то все норм, а там - нет..
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #1 : Сентябрь 19, 2013, 00:13 »

обычно QFileSystemModel привязывают к QTreeView.

файл создается/удаляется у тебя в программе или извне?
Записан

Изучением 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
Al.Der
Гость
« Ответ #2 : Сентябрь 19, 2013, 08:55 »

Нет, в данной программе.
так TreeWidget же наследник TreeView

Идея такова, что в каждой папочке на ПК может быть спец. файл с параметрами. если они есть - файл создается, нет - удаляется.
И есть глобальный файл с параметрами(соотв. лежит в одной конкретной папке).
Так вот, в 1м случае при созд./ удалении файла деревцо обновляется сразу,
а вот если я обновляю глобальный файл => на всем ПК должны быть применены изменения. так вот в виндовском експлорере все сразу работает, а в проге - нет
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Сентябрь 19, 2013, 09:57 »

так TreeWidget же наследник TreeView
Использовать QTreeWidget со своей моделью как минимум не оптимально, т.к. QTreeWidget в конструкторе создаёт свою модель, на которую вешает кучу слотов. И всё это будет дропаться и по-новой вешаться при установке на него другой модели.
И какой тогда великий смысл в этом случае использовать QTreeWidget Непонимающий
Записан

Qt 5.11/4.8.7 (X11/Win)
Al.Der
Гость
« Ответ #4 : Сентябрь 20, 2013, 00:39 »

Ну, особой нужды действительно нету...

Но все же как обновить модель ?
Записан
Bepec
Гость
« Ответ #5 : Сентябрь 20, 2013, 06:56 »

Кривые пути решения:
1) резетнуть View. Тогда оно само перезапросит данные, но вернётся на начальное положение.
2) отнаследоваться от Model и сделать публичный метод обновления данных.
3) отнаследоваться и сделать модель с автообновлением данных в N секунд.

Прямой:
Чётко определить что не так работает.

Directory View показывает всё нормально? Если да - то проблема где то в вашей программе. Вырезайте куски кода и ищите, ищите, ищите.

Directory View тоже тормозит? Открываем исходники модели и ищем на что они завязаны и почему не происходит обновление.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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