将图像绘制为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);
是否绘制它但它仍然在图形中多次显示图像
答案 0 :(得分:2)
当您在场景中显示图像时(我猜是什么)为什么不使用QGraphicsScene::addPixmap(QPixmap)
并使用QPixmap::fromImage ( const QImage & image, Qt::ImageConversionFlags flags = Qt::AutoColor )
将图像设置为正确的格式。
答案 1 :(得分:0)
*image->scaled(10)
不适用于QImage*
。您可以写*image.scaled
或(更好)image->scaled
。