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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Scene и GraphicsView  (Прочитано 3649 раз)
StatuS74
Гость
« : Сентябрь 19, 2011, 06:14 »

Столкнулся с такой проблемой.
в метода класса я в сцену закидываю объекты (линий ,текст,фон). получается  прилично объектов порядка 3000+минимум.2 графика в сцене делаются за 2 секунды вместе с сохранением.

Код:

 ui->graphicsView->setScene( test::paint_Graf(параметры));
   ui->graphicsView->show();

   ui->graphicsView_2->setScene(test::paint2_Graf(параметры));
   ui->graphicsView_2->show();

но когда метод возвращает сцену и происходит отображение сцены то занимает это порядка 8-10 секунд. как избавится от такой задержки ?? ибо засекал по таймеру создание сцены с объектами сохранения на 2 графика приходится 2-2,5 секунды. и получаем 10-2= 8 секунд отрисовка на экране что то это анриал. а исправить не знаю как подскажите кто в курсах как это делается
Записан
alexman
Гость
« Ответ #1 : Сентябрь 19, 2011, 07:54 »

Возможно сама рисовка тормозит (стоит подоптимизировать отрисовку элементов) + возможно стоит объединить какие-то объекты в один... QGraphics тормозит, если много объектов (хотя 3000 - это немного).
Записан
StatuS74
Гость
« Ответ #2 : Сентябрь 19, 2011, 08:22 »

я просто рисую и на цену добавляю. без объединения. засекал создание сцены и сохранения её со всеми элементами занимает 2 секунды.
Записан
alexman
Гость
« Ответ #3 : Сентябрь 19, 2011, 08:25 »

Цитировать
стоит подоптимизировать отрисовку элементов
Записан
StatuS74
Гость
« Ответ #4 : Сентябрь 19, 2011, 09:02 »

в каком смысле отсортировку элементов ? не совсем понимаю про что идет речь ? вы предлагаете грубо говоря на графики строить не 3000+ точек а 1500 отсортировав повторяющейся или разница у которых в 0,0001 ?
Записан
StatuS74
Гость
« Ответ #5 : Сентябрь 19, 2011, 12:14 »

убрал повторяющиеся точки время сократилось до 5 секунд. подскажите как уменьшить до 1-2 секунд
Записан
alexman
Гость
« Ответ #6 : Сентябрь 20, 2011, 08:30 »

Читай внимательней. ОТРИСОВКУ

Возможно у вас рисовка конкретных элементов работает небыстро... 1-2 сек - это долго
Вообще есть профилировщики для этих целей. Но можно проще: например, с начала на сцену добавить элементы одного класса (разное кол-во) - улучшить производительность (что то кешировать, ...), затем другого класса ..., ...
« Последнее редактирование: Сентябрь 20, 2011, 08:40 от alexman » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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