Qt-Qt的窗口显示的内容转化为图片

相关资料:

https://blog.csdn.net/can3981132/article/details/51501235

将Qt的窗口显示的内容转化为图片的方法有两种:
第一种是调用QPixmap的静态成员函数
QPixmap grabWidget ( QWidget * widget, const QRect & rectangle )
将widget中的内容绘制到QPixmap中,  rectangle可以控制区域.
第二种方法是调用QWidget的函数
void render ( QPaintDevice * target, const QPoint & targetOffset = QPoint(), const QRegion & sourceRegion = QRegion(), RenderFlags renderFlags = RenderFlags( DrawWindowBackground | DrawChildren ) )
void render ( QPainter * painter, const QPoint & targetOffset = QPoint(), const QRegion & sourceRegion = QRegion(), RenderFlags renderFlags = RenderFlags( DrawWindowBackground | DrawChildren ) ) 
从参数可以看出接收绘制内容的是QPaintDevice,所以这里不仅限于QPixmap。

 1 Widget::Widget(QWidget *parent) :
 2 QWidget(parent),
 3 ui(new Ui::Widget)
 4 {
 5 ui->setupUi(this);
 6 // QPixmap pixmap(ui->tableWidget->size());
 7 // ui->tableWidget->render(&pixmap);
 8 QPixmap pixmap = QPixmap::grabWidget(ui->tableWidget);
 9 ui->label->setPixmap(pixmap);// 最后用一个label将pixmap显示出来
10 }


作者:疯狂Delphi
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

欢迎关注我,一起进步!扫描下方二维码即可加我

原文地址:https://www.cnblogs.com/FKdelphi/p/14470114.html