【问题标题】:How to print/export a QTreeWidget content?如何打印/导出 QTreeWidget 内容?
【发布时间】:2013-08-15 05:14:24
【问题描述】:

假设我有一个这样的 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);

程序显示打印对话框让我选择打印机机器。完全打印后,我得到了一个空白页。该页面不包含任何内容。

你能帮帮我吗?

谢谢!

【问题讨论】:

标签: c++ qt qtreewidget


【解决方案1】:

我猜printer 返回一个空的pageRect()。也许您需要选择一个paperSize(),因为这取决于驱动程序...

尝试显示一些信息,例如qDebug() << printer.pageRect(),可以很容易地重定向到文件...

【讨论】:

    【解决方案2】:

    Asi me funcionó a mi, 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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 2017-01-12
      • 2020-01-07
      • 2011-01-23
      • 2019-08-29
      • 2021-07-04
      相关资源
      最近更新 更多