Hi,
ich habe eine von einem QWidget abgeleitete Klasse erstellt. Diese dient nur dazu um mit hilfe einer Brush (diese wiederum mit Qgradient gesetzt) das widget mit bestimmten farben zu füllen.
Nun möchte ich diese mein abgeleitetes Widget sobald es mit der Brush eingefärbt ist gerne als Bild speichern (png zb.).
Ich habe in erfahrung gebracht dass das generell mit einem QImageWriter geht, aber kann ich damit auch widgets als Bilder speichern?
lg scr
QWidget als Image speichern
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Danke für die schnelle Antwort! Problem ist gelöst.
Bei grabwindow besteht aber so weit ich das erfasst habe das Problem dass es wie ein screenshot ist - also werden über das Fester gelagerte Fenster mit in das bild aufgenommen.
Falls jemand einmal eine alternative Lösung brauchen sollte ich hab jetzt in das abgeleitete Widget eine Funktion mit folgendem Code dazu getan:
QString fileName("whatever");
QPainter *painter = new QPainter();
QImage *image = new QImage(QSize(width() - 1, height() - 1), QImage::Format_ARGB32);
painter->begin(image);
this->render(painter);
painter->end();
image->save(fileName);
delete painter;
delete image;
Painter rendert also das aktuelle widget in das image hinein.
lg scr
Bei grabwindow besteht aber so weit ich das erfasst habe das Problem dass es wie ein screenshot ist - also werden über das Fester gelagerte Fenster mit in das bild aufgenommen.
Falls jemand einmal eine alternative Lösung brauchen sollte ich hab jetzt in das abgeleitete Widget eine Funktion mit folgendem Code dazu getan:
QString fileName("whatever");
QPainter *painter = new QPainter();
QImage *image = new QImage(QSize(width() - 1, height() - 1), QImage::Format_ARGB32);
painter->begin(image);
this->render(painter);
painter->end();
image->save(fileName);
delete painter;
delete image;
Painter rendert also das aktuelle widget in das image hinein.
lg scr
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Aber deswegen musst Du doch nicht ableiten
Code: Alles auswählen
QImage img;
QPainter p(&img);
myWidget->render(&p);
p.end();
img.save("blub.png", "PNG");
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten: