Qt实现截屏并保存(转载)
原博地址: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");
Qt实现截屏并保存(转载)的更多相关文章
- Swift实现截屏并保存相册
func saveToLocal() { //截屏 let screenRect = UIScreen.mainScreen().bounds UIGraphicsBeginImageContext( ...
- Mac下使用Automator实现截屏编辑保存
以前在Windows下使用百度或者搜狗输入法的截图工具很方便.❶快捷键(Alt+X,我设置的是这个),❷选择区域,❸编辑所选区域,包括添加文字,线条框框,调色,❹点击『✔️』选择保存位置,修改文件名保 ...
- 一个基于Qt的截屏程序
最近有一个arm板上的程序需要重写用户手册,在网上找了许久,没找到合适的截屏工具.于是只好自己动手做一个了. 因为arm板上有已经有了Qt环境,于是想到用 Qt的QPixmap::grabWindow ...
- Selenium | 基础入门 | 截屏并保存于本地
可先参考 Selenium | 基础入门 | 利用Xpath寻找用户框 核心代码: //截屏操作 File srcFile = ((TakesScreenshot)driver).getScree ...
- 一个类实现Java截屏并保存到指定文件夹
不知小伙伴们有没有遇到过使用java来截屏的需求,截屏后保存到指定的目录,在桌面上没有任何体现,完全不知道已经被截屏了.至于截屏后怎么做,可能有的老铁只是好奇想知道某人在干啥?也有的老铁可能想进行文字 ...
- OpenGL(十) 截屏并保存BMP文件
BMP文件格式 BMP图像又称为Bitmap(位图),是Windows系统中广泛采用的图像格式.BMP文件的数据按照从文件头开始的先后顺序分为四个部分: 我们一般见到的图像以24位图像为主,即R.G. ...
- Qt写一个截屏工具(窗口透明)
最近发现好多次打开QQ仅仅想用它来截屏 ⊙﹏⊙b汗 不如自己来写一个截屏工具,集成到自己的小工具箱里面 动手之前考虑一下要怎么实现,我考虑过的方案大概有下面两种 : 1. 监控全局鼠标事件 (真是“ ...
- iOS截屏保存至相册
#pragma mark 截屏并保存至相册 -(void)screenShotsComplete:(void(^)(UIImage * img)) complete { CGSize imageSiz ...
- Unity3d 截屏保存到相册,并且刷新相册
要做一个截图的功能,并且玩家可以在相册中看到. 做的时候遇到了三个问题: 1.unity自带的截图API,Application.CaptureScreenshot在Android上不生效 2.图片保 ...
随机推荐
- 基础的Servlet
1.认识Servlet 今天接触了Servlet,我就写了这篇Servlet的文章.首先,我们了解一下Servlet是什么: 这是百度百科的解释,我个人理解是可以用来前后端交互的一个东西,例如可以实现 ...
- Zabbix远程执行命令
原文发表于cu:2016-06-14 Zabbix触发器(trigger)达到阀值后会有动作(action)执行:发送告警信息或执行远程命令. 本文主要配置验证zabbix执行远程命令. 一.环境 S ...
- Debian 给非 ROOT 用户添加 sudoer 权限
问题描述 从官方镜像安装的 Debian 9 (Stretch)比较纯净,但因此需要自己安装.配置许多常用的 Linux 应用,这里就需要 sudo (super user do)临时获取 root ...
- python错误记录
在主函数里调用其他函数时形参顺序要一致 错例如下:
- 笔试题——C++字符排序
题目:字符排序 题目介绍:输入一组以空格隔开的字数串,将它们奇数位升序排序,偶数位降序排序,再重新输出成新的字数串. 例: 输入: 4 6 2 3 6 7 8 1 奇数位:4 2 6 8 ——2 4 ...
- [shell] awk学习
awk处理最后一行 awk '{if(NR>1)print a;a=$0}END{print a="b"}' file awk 'BEGIN{getline a}{print ...
- pat甲级1002
1002. A+B for Polynomials (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue T ...
- Python:集合操作总结
集合是一组无序排列的不重复元素集 [注]:集合的最大作用是对一个序列进行去重操作 一.集合的分类 在Python中集合分为两类,为可变集合(set)和不可变集合(frozenset).对于可变集合(s ...
- 福大软工1816 - 404 Note Found选题报告
目录 NABCD分析引用 N(Need,需求): A(Approach,做法): B(Benefit,好处): C(Competitors,竞争): D(Delivery,交付): 初期 中期 个人贡 ...
- Codeforces Beta Round #14 (Div. 2) D. Two Paths 树的直径
题目链接: http://codeforces.com/contest/14/problem/D D. Two Paths time limit per test2 secondsmemory lim ...