Stampare una QTableWidget in PDF

Mattepuffo's logo
Stampare una QTableWidget in PDF

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!


Condividi

Commentami!