Seite 1 von 1
Formular Abspeichern und drucken
Verfasst: 29. Mai 2008 10:35
von jd
Hallo Gemeinde,
Ich will ein Formular in Qt4 einbetten. Ich habe vor die Eingabe-Maske mit dem Designer zusammen zu bauen. Das Formular besteht nur aus Text und ein paar strichen. Die Frage ist jetzt wie ich das am besten drucken und speichern(PDF) kann. Soweit ich das gelesen habe, gibt es 2 Wege.
Man kann das ganze mit QPainter hin malen. oder man kann das mit HTML machen. Kann man auch beides Mixen?
Wie sieht das mit Bildern aus? Kann man Bilder auch in HTML einbetten (<img>) oder ist das nicht zulässig?
Oder wie würdet ihr das realisieren?
so long
jd
Verfasst: 29. Mai 2008 11:12
von close1
Hi, du kannst auf ein QPaintDevice genauso zeichnen wie auf den Bildschirm. also auch bilder, texte und auch linien usw. einfach zeichnen und dann das QPaintDevice an den QPrinter weitereiten, bei dem html kann ich dir leider nicht weiterhelfen
Verfasst: 29. Mai 2008 11:28
von jd
Ok, dann versuche ich das mit QPainter. Ich weiß jetzt schon das mit dem Abständen wird bestimmt eine elende Fummelei.
Verfasst: 29. Mai 2008 11:32
von dontinelli
Sicher kannst du in HTML auch Bilder einbinden.
Schau dir doch mal das
WebKit und das
QTextDocument an. Bei letzterem kannst du HTML-Text und Ressourcen setzen und hast eine direkte print(QPrinter)-Funktion.
Hier eine Liste aller unterstützten HTML-Tags:
http://doc.trolltech.com/4.4/richtext-html-subset.html
Verfasst: 29. Mai 2008 12:30
von jd
Super danke, dann werde ich das mit HTML machen, dann kann ich auch Drucken und Speichern, dann brauche ich mich nicht mit QPainter rum ärgern.
Verfasst: 29. Mai 2008 12:40
von solarix
Ich will ein Formular in Qt4 einbetten. Ich habe vor die Eingabe-Maske mit dem Designer zusammen zu bauen. Das Formular besteht nur aus Text und ein paar strichen.
Ich gehe davon aus, hier denkst du an eine "normale" Qt-Form (z.B. ein im Designer zusammengestelles QWidget). Wenn dies der Fall ist, dann wird das...
Die Frage ist jetzt wie ich das am besten drucken und speichern(PDF) kann.
... ganz einfach:
Code: Alles auswählen
QWidget *myForm = machFormIrgendwie();
QPixmap myPicture = QPixmap::grabWidget(myForm); // nun haben wir ein Bild der Form..
// jetzt wollen wir noch eine PDF-Version davon haben:
QPrinter printer;
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("/tmp/out.pdf");
printer.newPage();
QPainter p(&printer);
QPixmap pimage = myPicture.scaledToWidth(printer.pageRect().width());
p.drawPixmap(0,0,pimage);
p.end();
Verfasst: 29. Mai 2008 13:39
von jd
Das klingt ja super, verstehe ich das richtig das ich einfach einen "screenshot" von meinem Widget machen kann?
Verfasst: 29. Mai 2008 13:56
von close1
jd hat geschrieben:Das klingt ja super, verstehe ich das richtig das ich einfach einen "screenshot" von meinem Widget machen kann?
mhh bin mir grad nicht ganz sicher aber du könntest theorethisch alles zeichnen lassen, das ganze natürlich nicht auf den bildschirm sondern auf ein QPaintDevice, bin aber nicht sicher ob das geht, oder ob ich gerade eine andere programmiersprache im sinn hab.
Verfasst: 30. Mai 2008 09:00
von solarix
jd hat geschrieben:Das klingt ja super, verstehe ich das richtig das ich einfach einen "screenshot" von meinem Widget machen kann?
ganz genau! Durch das QPixmap kannst du dein gerendertes Widget in den Formaten
http://doc.trolltech.com/4.3/qimageread ... ageFormats exportieren, mit dem QPrinter noch in PDF und PostScript:
http://doc.trolltech.com/4.3/qprinter.h ... ormat-enum