Russian Qt Forum

Qt => Вопросы новичков => Тема начата: bra1ss от Август 23, 2011, 14:07



Название: Unhandled Exception при перетаскивании окна
Отправлено: bra1ss от Август 23, 2011, 14:07
Имеется камера, с которой в отдельном потоке последовательно запрашиваются кадры, которые выводятся в QLabel. ГУИ при этом работает абсолютно адекватно. Однако при любых действиях с окном программы (например, его перетаскивание) qdrawhelper_p.h вываливается в Unhandled Exception.

Код потока, захватывающего изображения с камеры
Код:
unsigned char* data = new unsigned char[w*h*4];

// захват кадра
UCC_GetNativeImageEx(SERIAL, &data[0], &FormatInfo, NULL, 0)

// преобразование цветового формата
newdata = new unsigned char[w*h*4];
UIT_Y8ImageTransform(newdata, &data[0], w*h, E_SIF_BGR24);

QImage img(newdata, w, h, QImage::Format_RGB888);
emit frameGrabbed(img);
delete data;

Код ГУИ-потока
Код:
...
QObject::connect(&cam, SIGNAL(frameGrabbed(QImage)), this, SLOT(drawFrame(QImage)));
...

void MainWidget::drawFrame(QImage img)
{
QPixmap pix = QPixmap::fromImage(img);
lblVideo->setPixmap(pix.scaled(lblVideo->size(), Qt::KeepAspectRatio));
        emit frameDrawed();
}