QGraphicsPixmapItem 不显示在 QGraphicsScene 中
QGraphicsPixmapItem doesn't show in QGraphicsScene
在继承自 QGraphicsItem 的 class GraphicWidgetItem 中,我创建了矩形、圆形和图片。除图片外,所有内容均已显示。我做错了什么?
CustomItem::CustomItem( QObject *parent):
GraphicWidgetItem(parent)
{
QGraphicsRectItem *topLevel = new QGraphicsRectItem(this);
topLevel->setRect(0, 0, 20, 20);
topLevel->setBrush(Qt::gray);
topLevel->setPos(-30 , -30);
QGraphicsRectItem *lowLevel = new QGraphicsRectItem(this);
lowLevel->setRect(0, 0, 20, 20);
lowLevel->setBrush(Qt::red);
lowLevel->setPos(-30 , 60);
QGraphicsEllipseItem *circle = new QGraphicsEllipseItem(this);
circle->setBrush(Qt::green);
circle->setRect(0, 0, 20, 20);
QGraphicsPixmapItem* pi = new QGraphicsPixmapItem(QPixmap(":/icons/image"));
}
物品出现在场景中只有两种方式:
- 直接使用addItem()添加。
- 或者是已经在现场的项目的children。
在你的情况下显示 "rectangles" 和 "circles" 是因为它们是 CustomItem
的 children 但 "pi" 不是所以它失败了,解决方案是传递给 "this" 作为 parent:
QGraphicsPixmapItem* pi = new QGraphicsPixmapItem(QPixmap(":/icons/image"), this);
或者
QGraphicsPixmapItem* pi = new QGraphicsPixmapItem(QPixmap(":/icons/image"));
pi->setParent(this);
在继承自 QGraphicsItem 的 class GraphicWidgetItem 中,我创建了矩形、圆形和图片。除图片外,所有内容均已显示。我做错了什么?
CustomItem::CustomItem( QObject *parent):
GraphicWidgetItem(parent)
{
QGraphicsRectItem *topLevel = new QGraphicsRectItem(this);
topLevel->setRect(0, 0, 20, 20);
topLevel->setBrush(Qt::gray);
topLevel->setPos(-30 , -30);
QGraphicsRectItem *lowLevel = new QGraphicsRectItem(this);
lowLevel->setRect(0, 0, 20, 20);
lowLevel->setBrush(Qt::red);
lowLevel->setPos(-30 , 60);
QGraphicsEllipseItem *circle = new QGraphicsEllipseItem(this);
circle->setBrush(Qt::green);
circle->setRect(0, 0, 20, 20);
QGraphicsPixmapItem* pi = new QGraphicsPixmapItem(QPixmap(":/icons/image"));
}
物品出现在场景中只有两种方式:
- 直接使用addItem()添加。
- 或者是已经在现场的项目的children。
在你的情况下显示 "rectangles" 和 "circles" 是因为它们是 CustomItem
的 children 但 "pi" 不是所以它失败了,解决方案是传递给 "this" 作为 parent:
QGraphicsPixmapItem* pi = new QGraphicsPixmapItem(QPixmap(":/icons/image"), this);
或者
QGraphicsPixmapItem* pi = new QGraphicsPixmapItem(QPixmap(":/icons/image"));
pi->setParent(this);