Ошибка рисования точки на изображении в потоковой камере qt - PullRequest
0 голосов
/ 11 октября 2019

Мой проект написал 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();
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...