我对Qt还比较陌生。 我在将 QImage
插入场景时遇到了一些麻烦。 请问有人能告诉我如何将 QImage
添加到 QGraphicsScene
中吗?
我对Qt还比较陌生。 我在将 QImage
插入场景时遇到了一些麻烦。 请问有人能告诉我如何将 QImage
添加到 QGraphicsScene
中吗?
为此,您可以使用QGraphicsPixmapItem
,并像其他QGraphicsItem
一样将其添加到场景中。
QGraphicsPixmapItem
可以用QPixmap
初始化,它是位图的设备相关表示,例如您可以使用静态函数QPixmap :: fromImage()
从QImage
中获取它。
更新(示例代码)
#include <QtGlobal>
#if QT_VERSION >= 0x050000
#include <QtWidgets>
#else
#include <QtGui>
#endif
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QImage image("test.png");
QGraphicsPixmapItem item( QPixmap::fromImage(image));
QGraphicsScene* scene = new QGraphicsScene;
scene->addItem(&item);
QGraphicsView view(scene);
view.show();
return a.exec();
}
如@Neal所建议的那样,addPixmap的使用更为简单,在某些情况下QGraphicsPixmapItem无法正常工作。假设您已经设置了QGraphicsScene
、QGraphicView
和程序余下部分,以下代码将只显示图像:
QString filename = "C:/image.png";
QImage image(fileName);
scene->addPixmap( QPixmap::fromImage(image));
item
的函数返回后将无法工作,因为item
在返回时被析构。 - bcmpincerror: variable 'QGraphicsPixmapItem item' has initializer but incomplete type QGraphicsPixmapItem item( QPixmap::fromImage(image));
- Patrizio Bertoni