原博地址:http://blog.csdn.net/qinchunwuhui/article/details/52869451?_t_t_t=0.28889142944202306

目前对应用实现截屏的方法还是比较多的,首先我们要了解Qt中的窗口的是如何设计的,不管是MFC下的窗口,还是其他窗口,仿佛都相似,曾经狂学MFC,结果毕业一次没用过已经还给老师,悲催,好了下面我们来介绍一下Qt的窗口设计吧!鸡冻吧…. 
1.首先我们来看看我从手册上盗取的图片

 
我们了解了Qt的窗口框架,让我们来看看她(羞涩的小菇凉,想多了….)提供的几个函数吧! 
包括整个窗口:x(), y(), frameGeometry(), pos(), and move(). 提供这个几个函数,通过这个几个我们就可以方便的操作整个窗口的位置以实现截图啦。 
不包含窗口框(其实就一个标题栏)的:geometry(), width(), height(), rect(), and size().,通过这个几个函数我们就可以操作窗口的的Client 区域了。

代码:

QString fileName;
QPixmap pix, bmp;
pix =bmp.grabWindow(QApplication::desktop()->winId(),0,0, frameGeometry().width(),frameGeometry().height());
fileName= QDateTime::currentDateTime().toString("yyyy-MM-ddHH-mm-ss") + ".bmp";//通过时间命名文件
if (pix.isNull())
{
QMessageBox::information(this, "Error", "截屏失败 !", QMessageBox::Ok); }
else
{
if(!pix.save("../screen/"+fileName,"BMP"))
{
QMessageBox::information(this, "Right", "保存错误 !", QMessageBox::Ok); }
else
{
QMessageBox::information(this, "Grab", "保存成功!",QMessageBox::Ok); }
}

  PS:亲测可用!

如果把提示信息去掉,简化的写法为:

QPixmap p=viewWidget->grab(QRect(20,20,320,480));  //截图区域可根据自己的面板调节,或用系统函数获取
p.save(QCoreApplication::applicationDirPath()+"//a.png","png");

  

最新文章

  1. freemarker string= null
  2. CG资源网 - Maya教程
  3. Count Complete Tree Nodes || LeetCode
  4. 通过URLHttpConnection方式连接网络步骤,获取位图为例
  5. ASP.NET浏览器定义文件及IE兼容模式
  6. ios 沙盒 NSCoding(相当于JAVA对象序列化) 归档 数据存储
  7. Codeforces Testing Round #12 B. Restaurant 贪心
  8. String 类型的相关转换
  9. 管理Undo数据
  10. linux scp传文件
  11. PHP+MYSQL分页原理
  12. 喜马拉雅音频下载工具 - xmlyfetcher
  13. mysql更新字段内容
  14. Flask 框架介绍
  15. 解决CentOS出现"No package redis available"提示问题
  16. maven安装和四大特性
  17. 痞子衡嵌入式:让你从此高效写作的轻量级标记语言(Markdown)
  18. springboot中使用拦截器、监听器、过滤器
  19. 分享一段奇葩的DBMS_JOB书写经历
  20. vue安装,router-link的一些属性,用法,tag active-class,to,replace,exex等等

热门文章

  1. 【jpeg_Class 类】使用说明
  2. Dsniff简介
  3. 3.hive的thriftserver服务
  4. Cross origin requests are only supported for protocol schemes: http, data, chrome,chrome-extension的问题
  5. node.js常用方法
  6. 6. B树
  7. 新手使用github过程记录
  8. scrum 项目准备2.0
  9. jdk&tomcat环境变量配置及同时运行多个tomcat方法
  10. MATLAB串口操作和GUI编程