QT后台程序与显示界面同时运行

scorlw 发布于

QT后台程序与显示界面同时运行

有些时候需要后台运行一个耗时较长的脚本或者函数,此时如果没有界面进行显示的话,用户可能会认为程序“死”掉了,所以需要显示一个loading的窗口。

一、loading动画的显示

动画的显示暂时想到三种方式:使用QMovie调用gif图、使用循环显示多张静态图和利用QPaint自己画。

1.QMovie显示gif图

在界面中添加一个label来显示QMovie。

1
2
3
4
5
QMovie *pMovie = new QMovie("E:/webDownload/771.gif");
ui->m_pLoadingLabel->setFixedSize(50, 50);
ui->m_pLoadingLabel->setScaledContents(true);
ui->m_pLoadingLabel->setMovie(pMovie);
pMovie->start();

其中,图片可以去这个网站上找。

2.利用qt绘制

我是从这个博客看到的,可以去上面的github网址下载。

二、后台运行函数

可以使用qthread建立新的进程、可以使用QApplication::processEvents();、可以使用QtConcurrent。

1.参考网址https://blog.csdn.net/naibozhuan3744/article/details/81174681

2.参考网址https://blog.csdn.net/clarkness/article/details/81302589

3.参考网址https://www.pianshen.com/article/216879868/