使用QPdfWriter和QPainter来打印QDialog的一部分时遇到了一些问题。
为了进行语境化,我在Telemetry / LiDAR公司担任工程师,为了内部使用,我开发了一个GUI,可以轻松地比较/模拟我们的系统。我没有计算机编写,所以我只是在完成了一些Qt教程之后开发它(我喜欢编码一般,但我的意思是我并不喜欢它)。
在此GUI中,我添加了“概述”。在实践中,它总结了QDialog中的所有输入和输出。这个QDialog包含一个scrollArea,在centralWidget中定义。 (屏幕右边:https://imgur.com/a/iiCGnaX)
所以我的研究让我使用这种编码来获取scrollArea,并以PDF格式打印:
QString filePath=QFileDialog::getSaveFileName(this, "System summary",path,"PDF files (*.pdf)");
QPdfWriter pdfWriter(filePath);
pdfWriter.setResolution(100);
QPainter painter;
painter.begin(&pdfWriter);
painter.setRenderHint(QPainter::SmoothPixmapTransform);
QPixmap screenshotPDF = contenu->QWidget::grab();
painter.drawPixmap(0,0,screenshotPDF);
painter.end();
如果是,屏幕区域的内容是完全手工制作的(它有A4纸的尺寸,我把QGroupBox没有布局)。
事情的结果是质量不高。我尝试在renderHint上播放分辨率,但我找不到相当不错的东西。 屏幕显示:https://imgur.com/a/Gh3LHPM。正如你所看到的,它“模糊”而且不整洁。
我想我做错了什么,但我尝试的一切都不能很好地工作(例如,如果我只是将“setResolution”行更改为N * 100,我最终得到N次太小的东西/高)
这是我第一次在这里发帖,我希望我的问题是合适的,我也要感谢你们这个论坛对我这个新手有很多帮助。
IMRA'