Verschieben eines QPixmap um die Ecke eine QGraphicsScene

Ich habe einen QGraphicsView und QGraphicsScene so verbunden:

graphicsScene->setSceneRect(this->graphicsView->rect());
graphicsView->setScene(this->Scene);

Dann lade ich ein Bild und fügen Sie es zu der Szene:

  QPixmap pixmap;
  pixmap.load(fileName);

  pixmap = pixmap.scaled(this->graphicsView->size());
  QGraphicsPixmapItem* item = this->Scene->addPixmap(pixmap);

Nun, wie in der Dokumentation beschrieben, die Bild-Ecke bei (0,0), das ist nicht die Ecke des graphicsScene. Ich weiß, ich kann die position der resultierenden pixmap by doing:

item->setPos(this->Scene->sceneRect().x(), this->Scene->sceneRect().y());

Aber ich kann nicht scheinen, um Sinn der Koordinaten des rect ' s der Szene oder der Ansicht. Kann mir jemand erklären, wie ich die pixmap in die Ecke des scene/view?

Dank,

David

EDIT: Hier ist die vollständige form-Konstruktor. Die QGraphicsView wurde im Qt-Designer und ist in ein GridLayout-Objekt:

Form::Form(QWidget *parent)
    : QWidget(parent)
{
  setupUi(this);

  QGraphicsScene* scene = new QGraphicsScene;
  scene->setSceneRect(this->graphicsView->rect());
  this->graphicsView->setScene(scene);

  QPixmap pixmap;
  pixmap.load("image.png");
  pixmap = pixmap.scaled(this->graphicsView->size());

  scene->addPixmap(pixmap);

}

Ich auch so probiert:

  QGraphicsScene* scene = new QGraphicsScene;
  this->graphicsView->setScene(scene);

  QPixmap pixmap;
  pixmap.load("/home/doriad/glasses.jpg");

  QGraphicsPixmapItem * item = scene->addPixmap(pixmap);
  this->graphicsView->fitInView (item);

aber erscheint das Bild winzig, anstatt Auffüllen der Sicht wie ich es erwarten würde. Kann das jemand erklären?

Den vollständigen Projekt-und Bild gibt es hier: daviddoria.com/Uploads/qt/QPixmapPosition

  • Sind Sie interessiert an der Ecke der Szene, oder in die Ecke der Ansicht, unabhängig davon, wo kann es sein positioniert?
  • Ich möchte nur eine Szene, in der Ansicht, also idealerweise würde ich gerne die Ecke der Szene, um eine Linie mit der Ecke des anzeigen - dann die Ecke der pixmap konnte line-up und es wäre das gleiche.
InformationsquelleAutor David Doria | 2011-11-03
Schreibe einen Kommentar