我试图画线到QImage并在Qlabel中显示它。但是,我有一些我无法解决的问题。

    QPixmap px;
    px.fromImage (imgRaw);  // define in header file QImage imgRaw;

    QPainter p (&px);
    p.setPen (Qt::red);

    p.drawLine (mouseStart_X, mouseStart_Y, mouseReleased_X, mouseReleased_Y);
    p.end ();

    ui->lblRightImg->setPixmap (px);
    ui->lblRightImg->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
    ui->lblRightImg->setScaledContents(true);


当我在上面使用此代码时,它给出了这样的错误:

    QPainter::begin: Paint device returned engine == 0, type: 2
    QPainter::setPen: Painter not active
    QPainter::end: Painter not active, aborted


然后我更改了代码,因为它尝试绘制空像素图,​​因此在更改如下代码后:

    QPixmap px(100, 100);
    px.fromImage (imgRaw);  // define in header file QImage imgRaw;


然后给出嘈杂的图像(黑色和灰色破碎图像)

您能帮我解决这个问题吗?

编辑:

还尝试了:

QPixmap px = QPixmap::fromImage (imgRaw);


然后它给出相同的图像而没有任何绘图。

最佳答案

fromImage是QPixmap的静态函数,不影响您的“对象”,它返回所需的像素图。尝试使用以下代码初始化像素图:

QPixmap px = QPixmap::fromImage(imgRaw);

关于c++ - 画线到QImage,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27604566/

10-12 18:16