QPixmap in QTextDocument anzeigen und ausdrucken
Verfasst: 28. September 2007 14:24
Hallo,
Ich erstelle in einem QTextDocument eine Liste (Tabelle) mit Daten ... Nun würde ich gernen noch ein paar Grafiken (Balkendiagramme) anzeigen. Die Diagramme funktionieren bereits jedoch in einem QFrame. Nun suche ich nach einer Möglichkeit die Grafik in einem QTextDocument oder vll. sogar in einem QLineEdit (laut div. Foren nicht möglich) anzeigen zu lassen.
Folgende überlegung habe ich getroffen
(hier nur zum Test eine einfache Grafik)
Ich erstelle ein QPixmap lasse alles zeichen und speichere das ganze im QByteArray (falls dies überhaupt geht, k.a.):
Nun erstelle ich ein QTextDocument werfe den ganzen Inhalt hinein und gebe im die Resource mit. Leider klappt meine Überlegung überhaupt nicht.
Wie setzt man diese am besten um, wäre für jeden kleinen Tipp dankbar.
Ach ja hätte ich fast vergessen ... Ich möchte nichts auf die Festplatte speichern ... alles sollte alles im Speicher liegen ..., wenn dies nicht geht wäre ich für jede andere Lösung auch dankbar.
Ich erstelle in einem QTextDocument eine Liste (Tabelle) mit Daten ... Nun würde ich gernen noch ein paar Grafiken (Balkendiagramme) anzeigen. Die Diagramme funktionieren bereits jedoch in einem QFrame. Nun suche ich nach einer Möglichkeit die Grafik in einem QTextDocument oder vll. sogar in einem QLineEdit (laut div. Foren nicht möglich) anzeigen zu lassen.
Folgende überlegung habe ich getroffen
(hier nur zum Test eine einfache Grafik)
Ich erstelle ein QPixmap lasse alles zeichen und speichere das ganze im QByteArray (falls dies überhaupt geht, k.a.):
Code: Alles auswählen
statistik = new QPixmap(150, 400);
statistik->fill(Qt::blue);
QRadialGradient gradient(50, 50, 50, 50, 50);
gradient.setColorAt(0, QColor::fromRgbF(1, 0, 0, 1));
gradient.setColorAt(1, QColor::fromRgbF(0, 0, 0, 0));
QPainter painter(statistik);
painter.fillRect(0, 0, 100, 100, gradient);
QByteArray bytes;
QBuffer buffer(&bytes);
buffer.open(QIODevice::WriteOnly);
statistik->save(&buffer, "PNG");
Code: Alles auswählen
QTextDocument myTextDocument;
myTextDocument.setHtml(dataContent);
myTextDocument.addResource (QTextDocument::ImageResource,QUrl("PNG") , buffer );
Ach ja hätte ich fast vergessen ... Ich möchte nichts auf die Festplatte speichern ... alles sollte alles im Speicher liegen ..., wenn dies nicht geht wäre ich für jede andere Lösung auch dankbar.