Qt4 Graphicsitem/pixmap未显示在图形场景中

Qt4 Graphicsitem/pixmap未显示在图形场景中,qt4,Qt4,上面是我向图形项目添加图片的代码。无论我做什么,它都会显示图形场景,但不会显示pixmap/pixmapitem。出了什么问题,我该如何解决 此外,我打算进一步动画的形象。图形场景中的picmap或pixmap项,哪个容器最适合此项?您的场景设置似乎很好。通过在场景中的任何所需位置添加QGraphicsRectItem,可以检查场景是否正常工作 将pixmap添加到现有场景- ui->setupUi(this); scene = new QGraphicsScene(this); ui-&

上面是我向图形项目添加图片的代码。无论我做什么,它都会显示图形场景,但不会显示pixmap/pixmapitem。出了什么问题,我该如何解决


此外,我打算进一步动画的形象。图形场景中的picmap或pixmap项,哪个容器最适合此项?

您的场景设置似乎很好。通过在场景中的任何所需位置添加QGraphicsRectItem,可以检查场景是否正常工作

将pixmap添加到现有场景-

ui->setupUi(this);
scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);
//scene->setSceneRect(-200,-200,300,300);
//ui->graphicsView->setRenderHint(QPainter::Antialiasing);

QPixmap pic (":/Single_linked_list.png");
//pic.load(":/Single_linked_list.png");
QGraphicsPixmapItem *item = new QGraphicsPixmapItem (/*pic*/);
item->setPixmap(pic);
scene->addPixmap(pic);

scene->addItem(item);
scene->
// scene->show();

//painter.drawPixmap(/*scene->sceneRect().bottomLeft().x()+0.1*/0.10,/* scene->sceneRect().bottomLeft().y()-0.1*/0.10, pic);
这将向场景中添加pixmap项目并显示它。您不需要显式调用它来显示图像

如果要应用平移、旋转或缩放等普通动画,只需使用setPos、setScale或setTransform函数即可。为了更好地控制,可以使用Qt提供的动画框架。它适用于任何QGraphicsItem,即QGraphicsPixmapItem。查看文档以获取更多参考


查看此视频了解Qt GraphicsView基础知识-并检查此链接了解简单的QGraphicsItem动画-

检查QPixmap对象是否已使用给定资源正确初始化。可以通过调用QPixmap::isNull()来实现这一点。如果为null,则表示未正确初始化,问题在于资源

QGraphicsPixmapItem *newItem=new QGraphicsPixmapItem(QPixmap(":/Single_linked_list.png"));
scene->addItem(newItem);