【发布时间】:2014-12-22 14:23:57
【问题描述】:
我正在尝试画线到 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);
然后它给出相同的图像而没有任何绘图..
【问题讨论】:
-
很抱歉我忘记提及这一点。我也尝试了您的解决方案,但之后它没有绘制任何东西。我又得到了原始图像。
-
你的应用是多线程的吗?
-
我在从 mousepressed 发出信号后绘制这条线..