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.