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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: "Тяжелое" окно  (Прочитано 5401 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Январь 26, 2022, 09:11 »

Добрый день

Юзеру предъявляется список объектов. По hotkey или из меню открывается окно с параметрами выбранного объекта (назовем info window). Таких окон несколько для одного объекта. При выборе др объекта info window(s) автоматом переключается на выбранный. В общем, обычный browsing (если я верно употребляю это слово). Многие приложения показывают список и info(s) в одном окне, что имеет свои плюсы и минусы

И вот проблема - одно из info окон оказывается слишком тяжелым, грузит много данных и переключаться на него при смене выбора занимает неск секунд и больше. Недолго думая я сделал его модальным. Увы, быстро выяснилось что это не годится, нужен постоянный доступ к др окнам которые отображают сцену

Какие есть решения ?

Спасибо
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Апрель 30, 2022, 10:06 »

Наверное проблема уже решилась..
Но наверное кэшировать данные?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Май 01, 2022, 05:50 »

Но наверное кэшировать данные?
Ну "что/как кешировать" - глухая конкретика задачи, обсуждать нет смысла. Возможно (обдумываю) сформулировать так: поймать момент когда данные "тяжелого окна" стали невалидны (типа dirty = true). Это тоже головняк, но допустим, и дальше что? Как организовать разумное поведение для юзера? Можно помечтать о "перезагрузке данных в др нитке"  Улыбающийся
Наверное проблема уже решилась..
Нет, актуально
Записан
DarkHobbit
Самовар
**
Offline Offline

Сообщений: 197


Просмотр профиля
« Ответ #3 : Май 19, 2022, 14:53 »

Можно помечтать о "перезагрузке данных в др нитке"  Улыбающийся

Я думаю, что это не "помечтать", а в итоге самый толковый способ.

Только в GUI thread, думаю, надо хранить статус "загружено - загружается - не загружено". Чудес-то не бывает. Если юзер захочет быстро попереключаться туда-сюда, надо во время загрузки показывать что-то типа "данные загружаются", а если эти данные могут измениться прямо во время работы - возможно, и добавить в инфо-окно кнопку "Обновить", которая снова дёрнет на запуск нитку загрузки. Просто при переключении между окон нитку не дёргать, пусть программа показывает ранее загруженные данные. Иначе вся эта многопоточность быстро доведёт программу до цунгундера. Для особо бестолковых любознательных можно при последующих переключениях подсвечивать рядом с кнопкой "Обновить" надпись что-нибудь типа "Данные могут быть неактуальными", если речь действительно идёт не про файлы, а про данные реального времени...
Записан

Мои проекты на Qt: DoubleContact, LInvert
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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