Qt截图自动截图程序

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: Qt截图自动截图程序

最近因为需要对一个Qt软件进行截图,而且很多过程图片是没办法在开发中截取的,只能在软件运行的时候截取,那么怎么解决呢?后来我想到可以写个定时器来控制一个截图程序,每隔一段时间便进行一次截图,这样的话,系统运行的时候,一样可以进行截图.

既然这么想了,大致看了下Qt的截图程序,发现还是挺简单的,于是我就写了个,后来顺利的帮我截取了所有的界面图片.

核心代码罗列出来,主要就是一个定时器+截图程序

1:定时器定义:

    //定义一个timer用来截取系统图片
    QTimer *screentimer = new QTimer(this);
    //timer的timeout触发cutScreen()函数,而cutScreen()函数正是截图程序
    connect(screentimer, SIGNAL(timeout()), this, SLOT(cutScreen()));
    //计时开始5000毫秒截取一次,也就是5s
    screentimer->setInterval(5000);
    //启动定时器
    screentimer->start();

2:截图代码:

/*******************************************************************************
* 名称:截图程序,帮助软件自动截图
* 功能:截图程序
* 形参:无
* 返回:无
* 说明:无
******************************************************************************/
void mainwindow::cutScreen() {
    QPixmap screen;
    QString format = "png";
    QString filename = QDateTime::currentDateTime().toString();
    screen = QPixmap::grabWindow(QApplication::desktop()->winId());
    screen.save(filename, format.toAscii());
    qDebug() << "saved file" << filename;
}

 

通过以上代码,便可以进行系统截图,截取的图片均在程序当前目录,当然也可以自定义.Qt自带的截图程序也可以参考.

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: Qt截图自动截图程序

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: