Qt, печать QDialog в формате PDF, проблемы с качеством - PullRequest
0 голосов
/ 22 мая 2018

У меня есть некоторые проблемы с использованием QPdfWriter и QPainter для печати части QDialog.

Чтобы немного контекстуализировать, я работаю инженером в компании Telemetry / LiDAR, и для внутреннего использования я разработалGUI для простого сравнения / моделирования наших систем.У меня нет компьютерного образования, поэтому я разработал его только после того, как следовал некоторым учебникам по Qt и т. Д. (Я вообще люблю кодировать, но я имею в виду, что я не настолько хорош).

В этом графическом интерфейсе я включил "обзор».На практике он суммирует все входы и выходы в QDialog.Этот QDialog содержит scrollArea, определенный в centralWidget.(экран прямо здесь: https://imgur.com/a/iiCGnaX)

Так что мои исследования заставляют меня использовать этот вид кодирования, чтобы захватить область прокрутки и напечатать ее в 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 раз слишком мало / High)

Это первый раз, когда я публикую здесь, я надеюсь, что мой вопрос уместен, такжеЯ хотел поблагодарить вас за этот форум, который очень помог мне, неофиту.

Imra '

...