Qt之对应用实现截屏并保存

来源:互联网 发布:淘宝网男士皮欧上衣 编辑:程序博客网 时间:2024/05/20 14:40

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

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

   通过上面的介绍,我们就可以充分的了解Qt的窗口了,但是对于不同的系统平台会有所不同,但是windows和linux是没有问题的,安卓没有尝试过,在下一篇,Qt开发Android的文章会推出,截屏的另一种方法,鸡冻吧,期待吧….,下面我们来代码见证截屏的方法吧!说了半天,啊!心好累….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);        }    }

以上就是截屏的方法之一了,一直使用这种方法,不过还有另一种方法,具体如何使用,在Android开发的文章会提出。
文章就到这,如果有啥想法,就请联系偶吧!QQ: 2120263292

1 0
原创粉丝点击