所以我正在尝试从我的应用程序中打印一个窗口,并使用以下代码:
QPrinter *printer = new QPrinter;
printer->setResolution(1200);
QPrintDialog *printDialog = new QPrintDialog(printer, this);
if (printDialog->exec() == QDialog::Accepted) {
QPainter p(printer);
QPixmap pm = QPixmap::grabWidget(this);
p.drawPixmap(0,0,pm);
}
Run Code Online (Sandbox Code Playgroud)
为了测试它我将图像导出为PDF,但我得到的是非常低分辨率的文件.关于如何制作高分辨率可缩放图像的任何想法?因为我打印的图表应该是可读的,因为它上面有一些小的值.
QPrinter是一个子类QPaintDevice,因此您可以尝试使用以下QWidget函数直接绘制它:
void QWidget::?render(QPaintDevice * target,...)
Run Code Online (Sandbox Code Playgroud)
QPainter如果您想QPainter自己创建,还有相同功能的版本.