Forum: PC-Programmierung QPixmap.save -> speichert ChartView ohne Bars?


von Jasson J. (jasson)


Angehängte Dateien:

Lesenswert?

Hallo zusamme,

aus einem erszeigten QChartView wird per .grab(); die Pixmap geholt, um 
sie zu speichern.
Dem gespeicherten Bild fehlen allerdings die Bar´s - im Gegensatz zur
chartView->show();
Ansicht.

Hat jemand eine Idee, woran das liegt?
>Frage mich, ob es am RenderHint liegt
chartView->setRenderHint(QPainter::Antialiasing);

Ich habe schon ein paar Versuche durch, statt grab .render() zu 
benutzten und in ein File zu speichern, das Ergebniss ist aber immer das 
gleiche.
1
chartView->show(); // -> displays with bars
2
QRect rect(0,0,1680, 200);
3
chartView->grab(rect).save("C:/PerformanceMeasurements/Picture_AnalyseHistogram_Channel_" + QString::number(busID) + ".jpg", "JPEG" , 100);// -> dspalys without vars

: Bearbeitet durch User
von Jasson J. (jasson)


Lesenswert?

Mit einem QLabel als Memeber welches die "ge-grab-te" Pixmap bekommt, 
scheint es, dass schon in der Pixmap die Bars fehlen

QPixmap pm = chartView->grab(rect);
    label.setPixmap(pm);
    label.show();

von Jasson J. (jasson)


Lesenswert?

Die Ursache ist die per Default eingeschaltete Animation, die bewirkt, 
dass die Bar´s "wachsen" und zum Zeitpunkt 0 bei 0 Amplitude sind.

This did the trick
chart->setAnimationOptions(QChart::NoAnimation);

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.