首页 > 解决方案 > Qt printing on linux has wrong coordinates

问题描述

I'm trying to print on Linux using Qt 5.12.2, but the result is out of page limits, over the page.

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");

changing the top parameter (rec.top()) for 200, prints correctly, on Windows prints correctly without no modifications.

any ideas?

using Fedora 29, Gnome 3.30.2

标签: c++linuxqt

解决方案


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


推荐阅读