У меня есть некоторые проблемы с использованием 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 '