64,683
社区成员
发帖
与我相关
我的任务
分享
QPrinter printer(QPrinter::ScreenResolution);
QPrintDialog *printDialog = new QPrintDialog(&printer, this);
if (printDialog->exec() == QDialog::Accepted)
{
QPainter painter(&printer);painter.setClipping(true);
QRect rect = painter.viewport();
QSize size = QPixmap::grabWidget(scrollAreaWidgetContents,scrollAreaWidgetContents->rect()).toImage().size();
scrollAreaWidgetContents->size().scale(rect.size(), Qt::KeepAspectRatio);
painter.setViewport(rect.x()-(size.width()-740)/2, rect.y(), size.width(), size.height());
painter.setWindow(QPixmap::grabWidget(scrollAreaWidgetContents,scrollAreaWidgetContents->rect()).toImage().rect());
painter.drawImage(0, 0, QPixmap::grabWidget(scrollAreaWidgetContents,scrollAreaWidgetContents->rect()).toImage());
}