-2

の背景として画像を描く最も簡単な方法は何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);

それを描画しますが、それでも描画中に複数回画像が表示されます ここに画像の説明を入力してください

4

2 に答える 2

2

シーンに画像を表示するとき(私が推測することですが)、画像を正しい形式にするためにQGraphicsScene::addPixmap(QPixmap)を使用しないのはなぜですか。QPixmap::fromImage ( const QImage & image, Qt::ImageConversionFlags flags = Qt::AutoColor )

于 2013-01-01T19:27:39.463 に答える
0

*image->scaled(10)では機能しませんQImage*。あなたが書く*image.scaledか(より良い)image->scaled

于 2012-12-27T13:22:28.307 に答える