LINUX.ORG.RU

вопрос про рисование в qt

 


0

1

Добрый день! Подскажите каким путем сделать следующее:

Есть два QImage img1,img2. на img2 в отдельном потоке рисуются данные (много данных), а img1 служит для вывода в GUI.

Также есть QGraphicsView со сценой. Проблема в том, что когда я отображаю img1 в обработчике drawBackGround() GraphicsView, то обновление идет слишком частое, и процессор не справляется с нагрузкой. Также я пробовал выставлять QGraphicsView::NoViewportUpdate и обновлять по команде view->update() только когда данные готовы. Но тем не менее обновление получается частым, т.к. происходит при перекрытии окна и тп.

Во что можно разместить img1, чтобы обновление данных происходила строго! по сигналу из другого потока?


Можешь, например, в QLabel.

Я только не совсем понял, что значит «обновление идет слишком частое»? Насколько часто ты будешь менять картинку (или вызывать drawBackGround() ), настолько часто viewport() и будет перерисовываться. Там внутри Qt сделано достаточно умно, чтобы лишнее не рисовать.

grondek
()

img1 служит для вывода в GUI.

Автара, прочитай уже документацию по QPixmap
А еще почитай про двойную буферизацию при отрисовке и как это реализовано в qt.

AF ★★★
()
Ответ на: комментарий от grondek

всем спасибо. сделал через QImage, только рисовал через setpixel() , плюс небольшая оптимизация данных с моей стороны

barmen
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.