QTableView und Drucken
Verfasst: 29. Mai 2007 16:43
Hi Leute,
Wie kann man eine QTableView am besten drucken???
Ich habe bereits versucht mit Pixmap und Painter die Tabelle auszudrucken.
Dabei habe ich zwei Probleme:
1. Keine Kopfzeilen
2. mehrseitiger Ausdruck
Hier ein kurzer ausschnitt aus dem Code:
In diesem Beispiel skaliere ich die ganze Tablle auf eine Seite da sie sonst immer abgeschnitten ist, ... bei 5000 Einträgen sieht man halt nicht mehr viel
Nach einiger Suche habe ich irgendwo gelesen, dass man die Tabelle in HTML und QTextDocument umwandeln kann und "einfach" drucken kann. Hat jemand eine kurze Anleitung bzw. einen Link wo das beschrieben wird bzw. eine andere Idee wie man eine Tabelle am besten druckt?
Danke im voraus.
Wie kann man eine QTableView am besten drucken???
Ich habe bereits versucht mit Pixmap und Painter die Tabelle auszudrucken.
Dabei habe ich zwei Probleme:
1. Keine Kopfzeilen
2. mehrseitiger Ausdruck
Hier ein kurzer ausschnitt aus dem Code:
Code: Alles auswählen
QPrinter printer(QPrinter::HighResolution);
//printer.setOrientation(QPrinter::Landscape);
printer.setFullPage(FALSE);
QPrintDialog *dlg = new QPrintDialog(&printer, this);
dlg->setWindowTitle(trUtf8("Aktuelle Liste Drucken!"));
if (dlg->exec() != QDialog::Accepted)
return;
int rows = proxyModel->rowCount(QModelIndex());
int columns = proxyModel->columnCount(QModelIndex());
int totalWidth = 0;
for (int c = 0; c < columns; ++c)
{
totalWidth += tableViewGesamt->columnWidth(c)-20;
}
int totalHeight = 0;
for (int r = 0; r < rows; ++r)
{
totalHeight += tableViewGesamt->rowHeight(r)-20;
}
//Printing
QPixmap pixmap(totalWidth, totalHeight);
QPainter::setRedirected(tableViewGesamt->viewport(), &pixmap);
QPaintEvent event(QRect(0, 0, totalWidth, totalHeight));
QApplication::sendEvent(tableViewGesamt->viewport(), &event);
QPainter::restoreRedirected(tableViewGesamt->viewport());
print scaled pixmap
printer.newPage();
QPainter painter(&printer);
painter.drawPixmap(printer.pageRect(), pixmap, pixmap.rect());
QStyleOptionViewItem option;
QModelIndex parent = QModelIndex();
Nach einiger Suche habe ich irgendwo gelesen, dass man die Tabelle in HTML und QTextDocument umwandeln kann und "einfach" drucken kann. Hat jemand eine kurze Anleitung bzw. einen Link wo das beschrieben wird bzw. eine andere Idee wie man eine Tabelle am besten druckt?
Danke im voraus.