Мой проект написал qt. Моя идея - подключить камеру к видоискателю qcamera. В потоке я нарисую точку в центре изображения. Когда qcamera загружает изображение с камеры, оно показывается на qlable, с paintEvent я буду рисовать в нем. Но я запускаю код, он покажет ошибку:
QWidget :: paintEngine: Больше не должен называться
QPainter :: begin: Устройство рисования вернул engine == 0, введите: 1
QPainter :: drawPoints: Художник не активен
QPainter :: end: Художник не активен, прерван
Мой кодовый слот получает и показывает изображение:
void Camera::processCapturedImage(int requestId, const QImage& img)
{
Q_UNUSED(requestId);
QImage scaledImage = img.scaled(ui->viewfinder->size(),
Qt::KeepAspectRatio,
Qt::SmoothTransformation); //viewfinder: qcameraviewfinder
ui->lastImagePreviewLabel->setPixmap(QPixmap::fromImage(scaledImage)); //lastImagePreviewLabel: qlabel
ui->lastImagePreviewLabel->update();
// Display captured image for 4 seconds.
displayCapturedImage();
QTimer::singleShot(4000, this, SLOT(displayViewfinder()));
}
, и это Paintevent:
void Camera::paintEvent(QPaintEvent *event)
{
QPainter painter(ui->lastImagePreviewLabel);
QPen paint;
paint.setWidth(5);
paint.setColor({0,0,255});
painter.drawPoint(340, 160);
painter.end();
}