Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: rik_mik_2raza от Июнь 18, 2020, 18:49



Название: хочу сделать типо такого - QImage (ил другой объект) заполняется из потока
Отправлено: rik_mik_2raza от Июнь 18, 2020, 18:49
Доброго времени суток.
Есть поток QThread, он заполняет массив unsigned char* m_data;
из этого потока есть сигнал  emit sig_update_image(m_data); который передаст указатель слоту для отрисовки изображения
Далее слот update_image отображает картинку
Код:
void view::update_image(unsigned char *data)
{
   QImage image(data,w,h,byte_per_line, format);


   QPixmap pixmap->fromImage(image)
   m_pixmap->scaled(imageLabel->width(), imageLabel->height());

   ui->label->setPixmap(m_pixmap);
}

Получается слишком много перекладывания данных (данных может быть очень много не сжатое изображение ) Вызовов update_image тоже много.
Как сделать чтобы был один объект для отображения, а данные закачивать в него когда захочу?


Название: Re: хочу сделать типо такого - QImage (ил другой объект) заполняется из потока
Отправлено: navrocky от Июнь 26, 2020, 19:52
Почему бы в потоке не делать QImage и дальше его передавать сигналом в слот? QImage шарит свои данные, лишних копирований не будет.