QPixmap rotieren und skalieren

Alles rund um die Programmierung mit Qt
Antworten
QAir
Beiträge: 6
Registriert: 7. Juli 2009 14:01

QPixmap rotieren und skalieren

Beitrag von QAir »

Hallo nochmal,
ich möchte in meiner QGraphicsView Bilder zeichnen, und dass die auch rotiert und scaliert werden wenn man die View rotiert und scaliert.
Ich habe folgendes Versucht

Code: Alles auswählen

QLabel *label = new QLabel(this);
QPixmap image("./images/meinBild.png");

QTransform m;
m.scale(0.25,0.25);
m.rotate(-90);
image.transformed(m);

label->setPixmap(image);
label->move(100,100);
label->resize(20,20);
label->setScaledContents(true);
label->setAttribute(Qt::WA_DeleteOnClose);
scene->addWidget(label);
Die Bilder skalieren und rotieren aber nicht. Kenn jemand eine Lösung. Ich wäre euch sehr dankbar
QAir
Beiträge: 6
Registriert: 7. Juli 2009 14:01

Beitrag von QAir »

Oder anders:
Ich könnte ein QGraphicsItem nehmen statt QLabel. Aber wie setzt man ein QPixMap in einem QGraphicsItem??? Denn QGraphicsItem hat keine Methode setPixmap() oder ähnliches...
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wenn man den Rückgabewert von QImage::transformed() wegwirft hat man auch nichts passendes.

QGraphcisScene hat was mit einem QPixmap
sven-kt
Beiträge: 20
Registriert: 11. Mai 2009 13:07
Wohnort: Franken

Beitrag von sven-kt »

QAir hat geschrieben:Aber wie setzt man ein QPixMap in einem QGraphicsItem??? Denn QGraphicsItem hat keine Methode setPixmap() oder ähnliches...
Hätte ich auch gern gewusst!

Oder ist QGraphicsPixmapItem da alleine für zuständig?
Qt 4.5, Windows Vista, Kubuntu
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

sven-kt hat geschrieben:
QAir hat geschrieben:Aber wie setzt man ein QPixMap in einem QGraphicsItem??? Denn QGraphicsItem hat keine Methode setPixmap() oder ähnliches...
Hätte ich auch gern gewusst!

Oder ist QGraphicsPixmapItem da alleine für zuständig?
Ja. Entweder selber erstellen, oder einfach ein Pixmap auf die Scene legen.
QGraphicsPixmapItem * QGraphicsScene::addPixmap ( const QPixmap & pixmap )
QAir
Beiträge: 6
Registriert: 7. Juli 2009 14:01

Beitrag von QAir »

franzf hat geschrieben:... oder einfach ein Pixmap auf die Scene legen.
aber mit scene->addPixmap kann man keine Position eingeben!!!
Wieso ist das so?????? Ich verstehe das gar nicht!!!

Jedenfalls habe ich das jetzt wie folgt gelöst:

Code: Alles auswählen

QPixmap pixmap("./images/meinBild.png");
QGraphicsPixmapItem* item = new  QGraphicsPixmapItem();
item->setPixmap(pixmap);
item->setPos(100,100);
scene->addItem(item);
Vielen Dank für eure Hinweise :-)
Antworten