QPixmap提供了两个函数 grabWidget 和 grabWindow 可以将屏幕上的窗体存成一个 QPixmap 格式的图片,很容易再将 QPixmap 存成文件。函数使用很简单,两行代码就可以:

QPixmap pixmap = QPixmap::grabWidget(this); //this是调用该函数的QWidget 指针
pixmap.save(“widget.png”,”png”);

两个函数的原型如下:

QPixmap QPixmap::grabWindow ( WId window, int x=0, int y=0, int w=-1, int h=-1 )

  • WId 表示被截取窗口的ID号
  • x, y 表示截取范围的起始坐标
  • w, h 分别表示截取范围的宽度和高度,如果为 -1,则表示全部截取

QPixmap QPixmap::grabWidget ( QWidget * widget, int x=0, int y=0, int w=-1, int h=-1 )

widget表示被截取窗口的画布部分,其余参数同grabWindow

grabWidget 和 grabWindow 两种方式,差别在于带不带 标题栏

void MainWindow::on_pushButton_clicked()
{
QPixmap pixmap = QPixmap::grabWindow( QApplication::desktop()->winId(), pos().x(), pos().y(), frameGeometry().width(), frameGeometry().height() );
pixmap.save("d:\\a.bmp","bmp");
}
void MainWindow::on_pushButton_2_clicked()
{
QPixmap pixmap = QPixmap::grabWidget(this);
pixmap.save("d:\\b.bmp","bmp");
}

需要强调的是: 执行 grabWidget()的时候,会自动调用 paintEvent( QPaintEvent *event ) 进行重绘操作。

最新文章

  1. sql将查询的结果集一次性插入到表变量中
  2. 最牛B的编码套路 - 呦呦鹿鸣 - 博客频道 - CSDN.NET
  3. Scala学习 —— 元组&映射
  4. SQL 常用函数及示例
  5. 随笔之——各大热门网站search 搜索框的写法,浅析!
  6. 网站构建学习笔记(0)——基本概念了解及资源学习(copy自w3school)
  7. Java学习-033-JavaWeb_002 -- 网页标记语言JSP基础知识
  8. 纯js写验证码
  9. Android:什么是Holo?【Translated By KillerLegend】
  10. How to Map Distinct Value Types Using Java Generics--reference
  11. 【解决办法】糟糕,我的电脑只有IE64位浏览器能上网,其他软件都上不了网
  12. spring mvc DispatcherServlet详解之一---处理请求深入解析
  13. IOS 表视图(UITableVIew)的使用方法(3)名单的索引显示
  14. ASP.NET Aries 开发框架
  15. Shell括号之间的区别
  16. python中元组/列表/字典/集合
  17. redis初步入门(1)
  18. Python 学习 第十篇:正则表达式 - re
  19. idea 同project添加多个module maven支持
  20. 【Docker 命令】- rm命令

热门文章

  1. ./adb: error while loading shared libraries: libncurses.so.5:
  2. 读取 android sys/下的信息
  3. websocket消息推送实现
  4. 用wifi来调试应用程序
  5. 《HTML5与CSS3基础教程(第8版)》
  6. Easyui 搜索框的折叠与展开方法
  7. [Web 前端] react-router4-0中文文档
  8. LINUX CentOS7安装字体库
  9. H2:开源内存数据库引擎
  10. [转]php的public、protected、private三种访问控制模式的区别