Wie painte ich ein QImage in ein QGraphicsView?

Alles rund um die Programmierung mit Qt
Antworten
theprogrammer12
Beiträge: 38
Registriert: 12. August 2009 20:02

Wie painte ich ein QImage in ein QGraphicsView?

Beitrag von theprogrammer12 »

Hier mein Code:

Code: Alles auswählen

QGraphicsScene *scene = new QGraphicsScene();
scene->setBackgroundBrush(QColor(0, 0, 0));
ViewBox->setScene(scene);
Wie kann ich da jetzt ein QImage einfügen??
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Was hast du bisher versucht?
Schon mal die Doku gelesen?

//edit:
Und muss es denn wirklich ein QImage sein? Hast du dir die Doku dazu schon mal durchgelesen?
Qt provides four classes for handling image data: QImage, QPixmap, QBitmap and QPicture. QImage is designed and optimized for I/O, and for direct pixel access and manipulation, while QPixmap is designed and optimized for showing images on screen. QBitmap is only a convenience class that inherits QPixmap, ensuring a depth of 1. Finally, the QPicture class is a paint device that records and replays QPainter commands
theprogrammer12
Beiträge: 38
Registriert: 12. August 2009 20:02

Beitrag von theprogrammer12 »

Also ich habs schon mal so probiert:

Code: Alles auswählen

scene->setForegroundBrush(QImage(".\bla.png"));
bzw. so:

Code: Alles auswählen

scene->setForegroundBrush(QBrush(QImage(".\bla.png")));
Ich habs auch schon mal mit QPixmap versucht, was auch nicht funktioniert hat:

Code: Alles auswählen

scene->addPixmap(QPixmap(".\bla.png"));
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Das hier klappt wunderbar:

Code: Alles auswählen

#include <QApplication>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QPixmap>

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QGraphicsView view;
    QGraphicsScene scene;
    view.setScene(&scene);
    scene.addPixmap(QPixmap("./test.png"));
    view.show();
    return app.exec();
}
Wenn etwas nicht klappt, sollte man genau sagen was nicht geht, und evtl Fehlermeldungen posten.
theprogrammer12
Beiträge: 38
Registriert: 12. August 2009 20:02

Beitrag von theprogrammer12 »

Danke!
Jetzt hab ich nur das Problem, dass ich das Bild zwingend als QImage habe.
Ich will nämlich einen Webcam-Server mit OpenCV programmieren (American Pie hehe) und die Funktion, die das IplImage in ein Qt-Format convertet, als rückgabewert ein QImage hat. Gibt es da irgendeine Möglichkeit das umzukonvertieren?
theprogrammer12
Beiträge: 38
Registriert: 12. August 2009 20:02

Beitrag von theprogrammer12 »

Ah ok! Ich hab die Funktion gefunden:
scene->addPixmap(QPixmap().fromImage(QImage("./bla.png")));
Danke für die Hilfe!
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

theprogrammer12 hat geschrieben:Ah ok! Ich hab die Funktion gefunden:
scene->addPixmap(QPixmap().fromImage(QImage("./bla.png")));
Funktion gefunden, aber Anwendung falsch ;) fromImage() ist eine statische Funktion, welche man üblicherweise ohne Instanz aufruft:

Code: Alles auswählen

QPixmap pix = QPixmap::fromImage( image );
theprogrammer12
Beiträge: 38
Registriert: 12. August 2009 20:02

Beitrag von theprogrammer12 »

Oh! Danke!
Antworten