QPixmap auf QLabel vergrößern/zoomen ?!
Verfasst: 14. Januar 2009 22:12
Hallo,
habe ein QLabel, darauf lege ich eine QPixmap die ich mit einem QPainter bemale. Nun moechte ich eine Zoom-Funktion einbauen. Mein Vorgehen:
1) QLabel auf die neue Groesse aendern
2) QPixmap vergroessern
3) Painter skalieren
Punkte 1) und 3) sind kein Problem, aber wie bekomme ich die Pixmap groesser (und wieder auf dem Label angezeigt, wobei das klappt glaube ich). Habe versucht die Methode pixmap->scaled(x,y, aspectRatio, trafoMode) aufzurufen, aber da kommt der Fehler "QPixmap::operator=: Cannot assign to pixmap during painting". Hab schon in der Doku und hier im Forum nach anderen Loesungen gesucht, aber bisher nichts nuetzliches gefunden.
Hier ein Stueck Code fuer ZoomIn:
Wie gesagt, Label wird schoen vergroessert, Painter skaliert aber leider bleibt die Pixmap gleich. Hat jemand eine Idee oder einen guten Tipp?
Danke. Gruss, Wojtek
habe ein QLabel, darauf lege ich eine QPixmap die ich mit einem QPainter bemale. Nun moechte ich eine Zoom-Funktion einbauen. Mein Vorgehen:
1) QLabel auf die neue Groesse aendern
2) QPixmap vergroessern
3) Painter skalieren
Punkte 1) und 3) sind kein Problem, aber wie bekomme ich die Pixmap groesser (und wieder auf dem Label angezeigt, wobei das klappt glaube ich). Habe versucht die Methode pixmap->scaled(x,y, aspectRatio, trafoMode) aufzurufen, aber da kommt der Fehler "QPixmap::operator=: Cannot assign to pixmap during painting". Hab schon in der Doku und hier im Forum nach anderen Loesungen gesucht, aber bisher nichts nuetzliches gefunden.
Hier ein Stueck Code fuer ZoomIn:
Code: Alles auswählen
1) Label: pixmapLabel->setFixedSize(ceil(pixmapLabel->size().width()*1.1), ceil(pixmapLabel->size().height()*1.1));
2) Pixmap: paintArea = paintArea->scaled(value, value, Qt::KeepAspectRatio, Qt::FastTransformation);
3) Painter: painter->scale(1.1, 1.1);
Danke. Gruss, Wojtek