我试图画线到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/