オブジェクトのメソッド内から QGraphicsScene に描画しようとしています。コードは次のようになります。
void Enemy::draw(QGraphicsScene *scene) {
//Works
scene->addPixmap(pixmap);
//Doesn't work
pixmapItem = scene->addPixmap(pixmap);
}
pixmap
タイプ の Enemy のメンバーであり、タイプQPixmap
のpixmapItem
Enemy のメンバーですQGraphicsPixmapItem*
。
addPixmap の戻り値をポインターに割り当てると、ピックスマップが表示されないのはなぜですか?
編集:さらなる調査は、
QGraphicsPixmapItem *pointer = scene->addPixmap(pixmap);
動作します
ローカル ポインターの値を pixmapItem に代入すると、再び機能しなくなります。
QGraphicsPixmapItem *pointer = scene->addPixmap(pixmap);
//doesn't work now
pixmapItem = pointer;