Em đang dùng Qt nhận camera và vẽ điểm đỏ ở tâm ảnh khi stream. Em dùng Qcameraviewfinder để nhận stream từ camera và show nó lên 1 qlabel. Còn vẽ 1 điểm đỏ thì em dùng sự kiện hàm paintEvent. Nhưng khi chạy chương trình thì nó show event lỗi như sau:
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::drawPoints: Painter not active
QPainter:: end: Painter not active, aborted
code:
code upload ảnh lên qlable
void Camera::processCapturedImage(int requestId, const QImage& img)
{
Q_UNUSED(requestId);
QImage scaledImage = img.scaled(ui->viewfinder->size(),
Qt::KeepAspectRatio,
Qt::SmoothTransformation);
ui->lastImagePreviewLabel->setPixmap(QPixmap::fromImage(scaledImage));
// Display captured image for 4 seconds.
displayCapturedImage();
QTimer::singleShot(4000, this, SLOT(displayViewfinder()));
//QTimer::singleShot(2000, this, SLOT(displayViewfinder()));
}
code 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();
}
Em là newbie Qt và source camera này là do em lấy từ mạng về.
Em cũng có đọc cách fix nhưng không biết làm sau. Link: https://stackoverflow.com/questions/22900106/qt-update-doesnt-work
Mong mọi người giúp đỡ.