Какой самый простой способ нарисовать изображение в качестве фона для QGraphicsRectItem
?
Я могу установить фон следующим образом, но я не могу масштабировать изображение:
QGraphicsRectItem *enemyItem;
QImage *image = new QImage(":/PaperMario.png");
QBrush *brush = new QBrush(*image);enemyItem = new QGraphicsRectItem();
enemyItem->setBrush(*brush);
enemyItem->setRect(enemy->getXPos()*30,enemy->getYPos()*30,30,30);
scene->addItem(enemyItem);
внутри QGraphicsRectItem
void MySquare::setBrush(QColor _color){
color = _color;
color_pressed = _color;
update(); //repaint
}
Я попробовал это с помощью:
QBrush *brush = new QBrush(*image->scaled(10));
Но я застрял: не хочет компилировать.
Это способ сделать это?
Редактировать:
QImage *image = new QImage(":/PaperMario.png");
QImage *scaled_image = new QImage(image->scaled(35,35,Qt::KeepAspectRatio));
QBrush *brush = new QBrush(*scaled_image);
Нарисовывает ли это, но все равно показывает изображение на чертеже несколько раз
когда вы отображаете свое изображение в сцене (что я бы догадался), почему вы не используете QGraphicsScene::addPixmap(QPixmap)
и использовать QPixmap::fromImage ( const QImage & image, Qt::ImageConversionFlags flags = Qt::AutoColor )
чтобы получить ваше изображение в правильном формате.
*image->scaled(10)
не работает на QImage*
, Либо ты пишешь *image.scaled
или лучше) image->scaled
,