Предполагая, что у меня есть QTreeWidget, как это
Я пытался этот код для печати / экспорта этого QTreeWidget в файл (имя этого QTreeWidget trvListVehicle)
QPrinter printer(QPrinter::HighResolution);
QPainter painter;
painter.begin(&printer);
double xscale = printer.pageRect().width() / double(ui->trvListVehicle->width());
double yscale = printer.pageRect().height() / double(ui->trvListVehicle->height());
double scale = qMin(xscale, yscale);
painter.translate(printer.paperRect().x() + printer.pageRect().width()/2,
printer.paperRect().y() + printer.pageRect().height()/2);
painter.scale(scale, scale);
painter.translate(-width()/2, -height()/2);
ui->trvListVehicle->render(&painter);
Программа показывает диалог печати для меня, чтобы выбрать принтер. После полной печати я получил пустая страница. На странице не было никакого контента.
Не могли бы вы помочь мне?
Спасибо!
я думаю что printer
возвращает пустое pageRect()
, Может быть, вам нужно выбрать paperSize()
, поскольку это зависит от драйвера …
Попробуйте отобразить некоторую информацию, например, с qDebug() << printer.pageRect()
, который может быть легко перенаправлен в файл …
Asi me funcionó ми, suerte!
QPrinter printer;
QPainter painter;
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName("nonwritable.pdf");
painter.begin(&printer);
painter.translate(printer.paperRect().x() + printer.pageRect().width(),
printer.paperRect().y() + printer.pageRect().height());
painter.scale(1, 1);
painter.translate(-width()/2, -height());
ui->treeWidget->render(&painter);