我正在尝试将线条绘制到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
然后我更改了我的代码,因为它尝试绘制null pixmap,所以在更改代码之后:
QPixmap px(100, 100);
px.fromImage (imgRaw); // define in header file QImage imgRaw;
然后它会产生嘈杂的图像(黑色和灰色的破碎图像)
你能帮我解决一下这个问题吗?
编辑:
也尝试过:
QPixmap px = QPixmap::fromImage (imgRaw);
然后它给出相同的图像,没有任何绘图..
答案 0 :(得分:4)
fromImage
是QPixmap的静态函数,不会影响您的'对象,它会返回您想要的像素图。尝试使用以下代码初始化像素图:
QPixmap px = QPixmap::fromImage(imgRaw);