你应该使用QApplication::processEvents(),这个是处理GUI程序的。而QCoreApplication::processEvents()是处理控制台程序的,虽然我没看源码,但你关闭窗体时的closeEvent是widget特有的,而控制台不会产生这个事件,所以你用QCoreApplication::processEvents()根据就不会处理顶层窗体的closeEvent,也就是不会退出程序,而窗体自身对closeEvent的处理只是hide隐藏窗体而已,也就造成你的后台运行现象。
1、写个 txt 文件,比如,autuo_shut,其内容有两行如下:
开机执行的原来那个命令
init 0
2、把你开机执行的原来那个命令换成“sh autuo_shut”。
启动
QString filepath = QDir::currentPath();
QString fullpath = filepath+"\\pp\\dist\\start";
QString title = fullpath+"\\mainexe";
title = titlereplace("/","\\");
fullpath = fullpathreplace("/","\\");
QProcess p(this);
psetWorkingDirectory(fullpath);
pstart("cmd", QStringList()<<"/c"<<"start mainexe");
pwaitForStarted();
pwaitForFinished();
关闭
QProcess p(this);
psetWorkingDirectory(fullpath);
pstart("cmd", QStringList()<<"/c"<<"taskkill /f /t /im mainexe");
pwaitForStarted();
pwaitForFinished();
以上就是关于Qt 循环中加入QCoreApplication::processEvents退出后台运行全部的内容,包括:Qt 循环中加入QCoreApplication::processEvents退出后台运行、如何实现qt程序退出linux系统自动关机、QT 启动与关闭外部程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)