whitefurrows
16-07-2006, 02:35
Hallo,
ich versuche ein QTextDocument mit mehreren Seiten (HTML) für eine Vorschau zu zeichnen, leider wird nur die erste Seite gezeichnet.
void Report::printButton_clicked( const QString& html )
{
QTextDocument doc;
QAbstractTextDocumentLayout::PaintContext ctx;
float w=533; // Seitenbreite
float h=754; // Seitenhöhe
doc.setHtml(html);
// Seitengröße des TextDocument's setzen
doc.setPageSize( QSizeF(w, h) );
//int pageCount=doc.pageCount();
QAbstractTextDocumentLayout *docLayout = doc.documentLayout();
QPainter p;
//for ( int page=1; page<=pageCount; page++){
QPicture pic;
p.begin(&pic); // Zeichnen beginnen
//Seite 1 und Seite 2 sind nur zum Testen, das Ganze soll in der Schleife laufen
//QRectF view(0, (page - 1) * h, w, h);
//ctx.clip = view;
//Seite1
ctx.clip = QRectF(0,0,w,h); // Setzt den context clip auf die erste Seite
layout->draw(&p,ctx);
//Seite2
//ctx.clip = QRectF(0,h,w,h); // Setzt den context clip auf die zweite Seite
//docLayout->draw(&p,ctx);
p.end(); // Zeichnen beendet
//picList.append(pic);
//}
}
Hat jemand dafür eine Erklärung und kann mir sagen wo der Fehler liegt?
Gruß
Whitefurrows
ich versuche ein QTextDocument mit mehreren Seiten (HTML) für eine Vorschau zu zeichnen, leider wird nur die erste Seite gezeichnet.
void Report::printButton_clicked( const QString& html )
{
QTextDocument doc;
QAbstractTextDocumentLayout::PaintContext ctx;
float w=533; // Seitenbreite
float h=754; // Seitenhöhe
doc.setHtml(html);
// Seitengröße des TextDocument's setzen
doc.setPageSize( QSizeF(w, h) );
//int pageCount=doc.pageCount();
QAbstractTextDocumentLayout *docLayout = doc.documentLayout();
QPainter p;
//for ( int page=1; page<=pageCount; page++){
QPicture pic;
p.begin(&pic); // Zeichnen beginnen
//Seite 1 und Seite 2 sind nur zum Testen, das Ganze soll in der Schleife laufen
//QRectF view(0, (page - 1) * h, w, h);
//ctx.clip = view;
//Seite1
ctx.clip = QRectF(0,0,w,h); // Setzt den context clip auf die erste Seite
layout->draw(&p,ctx);
//Seite2
//ctx.clip = QRectF(0,h,w,h); // Setzt den context clip auf die zweite Seite
//docLayout->draw(&p,ctx);
p.end(); // Zeichnen beendet
//picList.append(pic);
//}
}
Hat jemand dafür eine Erklärung und kann mir sagen wo der Fehler liegt?
Gruß
Whitefurrows