Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: StatuS74 от Сентябрь 19, 2011, 06:14



Название: Scene и GraphicsView
Отправлено: 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 секунд отрисовка на экране что то это анриал. а исправить не знаю как подскажите кто в курсах как это делается


Название: Re: Scene и GraphicsView
Отправлено: alexman от Сентябрь 19, 2011, 07:54
Возможно сама рисовка тормозит (стоит подоптимизировать отрисовку элементов) + возможно стоит объединить какие-то объекты в один... QGraphics тормозит, если много объектов (хотя 3000 - это немного).


Название: Re: Scene и GraphicsView
Отправлено: StatuS74 от Сентябрь 19, 2011, 08:22
я просто рисую и на цену добавляю. без объединения. засекал создание сцены и сохранения её со всеми элементами занимает 2 секунды.


Название: Re: Scene и GraphicsView
Отправлено: alexman от Сентябрь 19, 2011, 08:25
Цитировать
стоит подоптимизировать отрисовку элементов


Название: Re: Scene и GraphicsView
Отправлено: StatuS74 от Сентябрь 19, 2011, 09:02
в каком смысле отсортировку элементов ? не совсем понимаю про что идет речь ? вы предлагаете грубо говоря на графики строить не 3000+ точек а 1500 отсортировав повторяющейся или разница у которых в 0,0001 ?


Название: Re: Scene и GraphicsView
Отправлено: StatuS74 от Сентябрь 19, 2011, 12:14
убрал повторяющиеся точки время сократилось до 5 секунд. подскажите как уменьшить до 1-2 секунд


Название: Re: Scene и GraphicsView
Отправлено: alexman от Сентябрь 20, 2011, 08:30
Читай внимательней. ОТРИСОВКУ

Возможно у вас рисовка конкретных элементов работает небыстро... 1-2 сек - это долго
Вообще есть профилировщики для этих целей. Но можно проще: например, с начала на сцену добавить элементы одного класса (разное кол-во) - улучшить производительность (что то кешировать, ...), затем другого класса ..., ...