还有其他更好的方法吗

时间:2019-07-06 11:49:22

标签: c++ qt shared-memory

QT Paintevent没有绘制所需的图像,而是绘制了黑屏。使用SLOT(update)在每2秒的时间间隔中调用一次paintevent。

我尝试过触发PaintImage方法,该方法已实现以绘制提供的QImage,但也没有起作用。

void Client::paintEvent(QPaintEvent *event)
{

        //qWarning() << image.isNull() << image.width()<< image.height();
        QPainter painter(&image);
        painter.end();
        QPixmap pixMap;//(image);
        //painter.drawImage(1280, 639, image);
        bool b = pixMap.convertFromImage(image);
        QLabel w;
        w.setPixmap(pixMap);
        w.show();
}

预期显示的实际图像,但最终显示为空白屏幕。

1 个答案:

答案 0 :(得分:1)

将QLabel添加为类(客户端)的成员...让其命名为m_my_label。 然后在paintEvent中只说m_my_label.setPixmap(pixMap)和m_my_label.show()。

问题在于QLabel是局部变量,当您退出paintEvent函数时将不再存在。