Stampare una QTableWidget in PDF
In questo caso specifico, vogliamo solo stampare in PDF una QTableWidget; quindi:
- non stiamo effettuando una vera e propria esportazione
- questo codice si può tranquillamente usare anche per altri widget
Comunque, per eseguire questa operazione, ci avvaliamo di due oggetti:
Ma prima di tutto, nel vostro file di progetto (file con estensione .pro) dovete aggiungere il supporto alla stampante:
QT += core gui printsupport
Lanciate un qmake per stare sicuri (Build -> Run qmake).
Detto questo, qua sotto un esempio:
QPrinter printer;
printer.setOrientation(QPrinter::Landscape);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName(strFile);
QPainter painter;
painter.begin(&printer);
double xscale = printer.pageRect().width() / double(tbl->width());
double yscale = printer.pageRect().height() / double(tbl->height());
double scale = qMin(xscale, yscale);
painter.scale(scale, scale);
tbl->render(&painter);
In questo modo abbiamo anche scalato la dimensione del widget.
Enjoy!
c++ qt qtablewidget qmake qpainter qprinter printsupport
Commentami!