Alles rund um die Programmierung mit Qt
QAir
Beiträge: 6 Registriert: 7. Juli 2009 14:01
Beitrag
von QAir » 7. Juli 2009 16:13
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 » 7. Juli 2009 16:22
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 » 7. Juli 2009 16:30
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 » 7. Juli 2009 16:53
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 » 7. Juli 2009 16:56
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 » 8. Juli 2009 11:39
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