QTextDocument::pageCount gibt immer 1 zurück ??

Alles rund um die Programmierung mit Qt
Antworten
Tuxing
Beiträge: 52
Registriert: 28. Oktober 2009 11:13

QTextDocument::pageCount gibt immer 1 zurück ??

Beitrag von Tuxing »

Hallo,
ich habe ein Problem mit dem QTextDocument. Ziel ist es in ein QTextEdit HTML Text einzufügen (mit insertHtml) und mit Hilfe von QTextEdit::document()->pageCount die aktuell gebrauchte Seitenzahl auszugeben. Um zu gucken wie viele Seiten gerade wirklich gebraucht werden speichere ich den Text immer mit Hilfe eines QPrinters in eine PDF.
Der Quellcode dazu sieht folgendermaßen aus:

Code: Alles auswählen


QTextEdit *text = new QTextEdit(this);

// Einstellungen des Printers
QPrinter printer(QPrinter::HighResolution);
 printer.setOrientation(QPrinter::Portrait);
 printer.setPageSize(QPrinter::A4);
 printer.setResolution(72);
 printer.setOutputFormat(QPrinter::PdfFormat);
 printer.setOutputFileName(fileName);
 printer.newPage();

// Dem Dokument wird die Seitengröße mitgeteilt
QRectF pageRect(printer->pageRect());
QRectF body = QRectF(0,0,pageRect.width(), pageRect.height());
text->document()->setPageSize(body.size());


// Seiten ins TextEdit einfügen
QString page1 = " ganz viel Text .... ";
text->insertHtml(page1);
cout << "Seiten: " << edit->document()->pageCount() << endl;

QString page2 = " nochmal ganz viel Text .... ";
text->insertHtml(page2);
cout << "Seiten: " << edit->document()->pageCount() << endl;

QString page3 = " nochmal ganz viel Text .... ";
text->insertHtml(page3);
cout << "Seiten: " << edit->document()->pageCount() << endl;

// TextEdit in PDF drucken
text->document()->print(&printer);



Das Problem ist, dass mir die Ausgaben immer sagen dass die Seitenzahl 1 ist. Warum wird diese nicht erhöht ??

Danke
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wie groß ist denn deine Seite?
This property holds the page size that should be used for laying out the document.
By default, for a newly-created, empty document, this property contains an undefined size.
Tuxing
Beiträge: 52
Registriert: 28. Oktober 2009 11:13

Beitrag von Tuxing »

Das Zitat von dir hatte ich in der Doku auch gelesen. Danach kam ich auf die Idee dem QTextDocument die Größe der Seite zu definieren.
Als ich noch keine Größe definiert hatte, bekam ich immer schwachsinnswerte von pageCount zurück, zB. -256589652 .. weil der Wert der Seitengröße ja noch undefiniert war.

Jetzt hab ich die Seitengröße ja festgelegt und bekomme immer 1. Die Seitegröße soll die einer DINA4 Seite entsprechen.
Die Funktionen pageRect.width() und pageRect.height() geben folgende Werte für die Seitengröße (s. Quelltext: geben die Größen der Seite des printers aus ):

pageRect.width() = 547
pageRect.height() = 794

Welche Einheit das sein soll weiß ich nicht. Ich hoffe ich hab deine Frage wie groß die Seite denn ist richtig verstanden ;)

Danke für schonmal
Antworten