假设我有一个类似的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);
程序显示“打印”对话框供我选择打印机。完全打印后,我得到一个空白页。该页面不包含任何内容。
你能帮帮我吗?
谢谢!
答案 0 :(得分:0)
我想printer
会返回一个空的pageRect()
。也许您需要选择paperSize()
,因为这取决于驱动程序...
尝试显示一些信息,例如qDebug() << printer.pageRect()
,可以轻松地重定向到文件...
答案 1 :(得分:0)
Asi mefuncionóami,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);