Hey there.
I have array of custom structure object called Sprite, it looks like this:
struct Sprite
{
Sprite
() { image
= new QImage(32,
32, SPRITE_FORMAT
);
} void setSprite
(QImage *inImage
) { image
= inImage;
} QImage *getSprite
() { return image;
}
uint8_t width, height, r, g, b;
};
struct Sprite
{
Sprite() { image = new QImage(32, 32, SPRITE_FORMAT); }
void setSprite(QImage *inImage) { image = inImage; }
QImage *getSprite() { return image; }
QImage *image;
uint8_t width, height, r, g, b;
};
To copy to clipboard, switch view to plain text mode
Now, I have QListWidget and I'd like to insert items with icons from that array, but I have problem. QPixmap::fromImage takes &QImage as parameter, and my function (getSprite()) returns pointer.
I have following code (which crashes):
foreach(Item *x, ItemsLoader->xmlMap)
{
itemText = itemText.left(1).toUpper() + itemText.mid(1);
item
->setText
(itemText
+ " (ID: " + QString::number(x
->getId
()) + ")");
Sprite *sprite = ItemsLoader->sprMap[x->getId()];
item
->setIcon
(QIcon(QPixmap::fromImage(*sprite
->getSprite
())));
ui->ItemsListWidget->addItem(item);
}
foreach(Item *x, ItemsLoader->xmlMap)
{
QListWidgetItem *item = new QListWidgetItem;
QString itemText = x->getName();
itemText = itemText.left(1).toUpper() + itemText.mid(1);
item->setText(itemText + " (ID: " + QString::number(x->getId()) + ")");
Sprite *sprite = ItemsLoader->sprMap[x->getId()];
item->setIcon(QIcon(QPixmap::fromImage(*sprite->getSprite())));
ui->ItemsListWidget->addItem(item);
}
To copy to clipboard, switch view to plain text mode
I guess following line is causing application crash:
item
->setIcon
(QIcon(QPixmap::fromImage(*sprite
->getSprite
())));
item->setIcon(QIcon(QPixmap::fromImage(*sprite->getSprite())));
To copy to clipboard, switch view to plain text mode
How do I convert correctly from QImage* to &QImage?
Bookmarks