最近因为需要对一个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自带的截图程序也可以参考.
文章的脚注信息由WordPress的wp-posturl插件自动生成
微信扫一扫,打赏作者吧~![[整理]how to run flask with pyqt5](http://www.jyguagua.com/wp-content/themes/begin/timthumb.php?src=http://www.jyguagua.com/wp-content/uploads/2021/03/pyqt_flask.png&w=280&h=210&zc=1)


