c++ - 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
解决方案
我做了一个下游到较低的版本,现在正在工作。
推荐阅读
- docker - 如何使用 docker 编译 Arduino 程序?
- mysql - 将选择语句转换为更新(包括存在和拥有)
- python - 在带状图子图中为每个分布绘制多条水平线 Matplotlib
- javascript - nuxt.js 在 netlify 中生成带有动态路由的静态站点
- angular - NG子组件不调用服务
- java - Java 异常模式
- xcode10.2 - Xcode - 如何重置出现故障的 Xcode 10.2 安装?
- assembly - 如何为 Raspberry pi 3 编译 ARMv8 代码
- python - 如何为 jinja 未定义错误创建自定义端点?
- c++ - 如何修复来自 IP 摄像机的“400 Bad Request”?使用 ONVIF