Qt5:Qt中屏幕或窗口截图功能的实现
要想在Qt中实现屏幕或窗口截图功能 ,通常有两种方法:
1 -- 使用 QPixmap 类
2 -- 使用 QScreen类
然而虽然俩两种方法用到的类不相同,但是调用到的类成员函数的函数名称和参数却是相同的
都是 grabWindow() 这个函数
所不同的是,QPixmap中的 grabWindow()函数 是静态成员
QScreen中的grabWindow()成员是非静态成员
下面展示两种截屏的方法
QPixmap方法
//截屏并保存为 123.jpg
QPixmap::grabWindow(QApplication::desktop()->winId()).save("","jpg");
/****************************************************************
要注意的是 QApplication::desktop()->winId(),返回的是
要截屏的窗口的ID , 设为0 表示当前桌面 ,截屏时就会截全屏
******************************************************************/
注:这种方法在Qt5中已经过时 , 应该使用QScreen方法代替
QScreen方法
//功能同样是截屏 , 注:QScreen的构造函数是私有的
QScreen *screen = QGuiApplication::primaryScreen();
screen->grabWindow().save("","jpg");
Qt5:Qt中屏幕或窗口截图功能的实现的更多相关文章
- Qt中的主窗口之菜单栏
		
1.Qt中的主窗口 主窗口为建立应用程序用户界面提供了一个框架 Qt开发平台中直接支持主窗口的概念 QMainWindow是Qt中主窗口的基类 QMainWindow继承于QWidget是一种容器类型 ...
 - Qt 中如何捕获窗口停用和激活的消息
		
最近一直在用Qt做一个简单的俄罗斯方块的游戏,由于要实现一个暂停游戏的功能,就是当鼠标移出正在运行的游戏,点击电脑桌面上的其他位置时,这个时候游戏暂停.在这里把实现过程简单的记录一下,作为一个学习笔记 ...
 - python unittest addCleanup中也加失败截图功能
		
在python web自动化测试中失败截图方法汇总一文中提到了失败截图的方法 但在实际测试中,如果我们的测试用例中加了addCleanups动作,如果addCleanups中动作失败了,就不会截图.那 ...
 - Qt中实现菜单和工具栏功能
		
Qt创建菜单和工具栏: 一. temp.h文件的内容 1.定义类temp继承QMainWindow 2.添加Q_OBJECT , 构造函数 . 析构函数等内容 3.$重点内容 3.1定义QActio ...
 - Qt中如何固定窗口的大小?
		
这个是从网上转载过来的,我第一次看到的在如下网页:http://blog.csdn.net/cgb0210/article/details/5712980 这里我记录一下,留以后查阅. 一种方法是设 ...
 - 3.关于QT中的MainWindow窗口,MenuBar,ToolBar,QuickTip等方面的知识点
		
 1 新建一个空Qt项目 编写12MainWindow.pro HEADERS += \ MyMainWindow.h \ MyView.h SOURCES += \ MyMainWindow.c ...
 - Qt中重绘制窗口方法:
		
void CircleWidget::paintEvent(QPaintEvent * event) { QPainter painter(this); int wight = this->wi ...
 - Qt中常用知识点
		
1:QRegExp 正则表达式 QRegExp regExp("[a-zA-Z][1-9][0-9]{0,2}"); xxx->setValidator(new QRegEx ...
 - Qt中各个widget前后位置的设定(在Qt中,所有问题都要一分为二,QWidget体系和QGraphicsWidget体系)
		
这两天在总结一些以往project中遇到的问题,正好别组有同事问我关于Qt中各个widget窗口的前后位置是如何定义的,这里就总结一下: 在Qt中,所有问题都要一分为二,讨论两种不同的情况:一个是最常 ...
 
随机推荐
- 编码规范系列(二):Eclipse Checkstyle配置
			
http://chenzhou123520.iteye.com/blog/1627618 上一篇介绍了<编码规范系列(一):Eclipse Code Templates设置>,这篇主要介绍 ...
 - 这种方法在受到.NET版本和访问注册表权限时,是最佳解决方案,虽然代码看起来很多,不过下面的类直接拿走用就可以了。
			
public class FileContentType { private static IDictionary<string, string> _mappings = ne ...
 - 好题  线段树对数据的保存+离线的逆向插入 POJ 2887
			
题目大意:给一个字符串,有插入和询问操作,每次往一个位置插入一个字符或者询问第p个位置的字符是什么. 思路:我们离线询问,逆向把所有的字符都插入给线段树,然后再查询就好了,每次都要记得插入线段树的最后 ...
 - 前端 MVC 变形记
			
背景: MVC是一种架构设计模式,它通过关注点分离鼓励改进应用程序组织.在过去,MVC被大量用于构建桌面和服务器端应用程序,如今Web应用程序的开 发已经越来越向传统应用软件开发靠拢,Web和应用之间 ...
 - reactor与proactor模式
			
在比较这两个模式之前,我们首先的搞明白几个概念,什么是阻塞和非阻塞,什么是同步和异步. 同步和异步是针对应用程序和内核的交互而言的. 同步是指用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 ...
 - libevent linux安装
			
wget http://monkey.org/~provos/libevent-1.4.13-stable.tar.gzwget http://downloads.sourceforge.net/le ...
 - sql server数据库查询同义词
			
查询数据库同义词: select * from sys.synonyms, 查询同义词个数:select count(1) from sys.synonyms
 - JS事件——禁止事件冒泡和禁止默认事件
			
Event 对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 事件通常与函数结合使用,函数不会在事件发生前被执行! 一.什么是事件冒泡 在一 ...
 - awk 用法小结
			
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
 - OpenGL网络资源
			
转 十大OpenGL教程 1.http://nehe.gamedev.net/这个是我觉得全世界最知名的OpenGL教程,而且有网友将其中48个教程翻译成了中文http://www.owlei.com ...