如何打印带滚动条的Qt对话框?

时间:2014-07-15 09:22:27

标签: qt

我找到了打印对话框内容的示例代码。但是如果对话框有滚动条(垂直),则示例代码不会打印所有内容,它只打印对话框的可查看内容。

以下是代码:

QPainter p(printer);
Qpixmap pm = QPixmap::grabwidget(this);  // this(widget is QDialog having scrollbar etc)
p.drawPixmap(0,0,pm)

1 个答案:

答案 0 :(得分:1)

如果您有QAbstractScrollArea提供滚动条,那么您应该抓住它viewport()来绘制它,

如果是实际QScrollArea,请使用其widget()

QPainter p(printer);
Qpixmap pm = QPixmap::grabwidget(this->scrollarea->widget()); 
p.drawPixmap(0,0,pm)