Linux上的Qt打印坐标错误

时间:2019-03-26 18:14:20

标签: c++ linux qt

我正在尝试使用Qt 5.12.2在Linux上进行打印,但是结果超出页面限制。

QPrinter printer;

QPrintDialog *printDialog = new QPrintDialog(&printer, this);
printer.setOutputFormat(QPrinter::PdfFormat);

if (printDialog->exec() != QDialog::Accepted)
        return;

QRectF rec = printer.pageRect(QPrinter::DevicePixel);

QTextDocument doc;

QRectF recHeader(rec.left(), rec.top(), rec.width(), 20);

QPainter painter(&printer);

painter.translate(recHeader.left(), recHeader.top());
painter.drawRect(recHeader);
painter.drawText(recHeader, Qt::AlignLeft, "some text");
painter.drawText(recHeader, Qt::AlignRight, "01/01/2019");

将top参数(rec.top())更改为200,可以正确打印,在Windows上可以正确打印而无需修改。

有什么想法吗?

使用Fedora 29,Gnome 3.30.2

1 个答案:

答案 0 :(得分:0)

我做了一个下游版本,现在正在工作。