崩溃后如何重启qt应用程序?

时间:2015-05-27 17:48:01

标签: qt

崩溃后是否可以重启qt应用程序?就像那些将自行重启的Windows服务一样。如果是的话,我怎么能这样做?我尝试过这样的代码:

WebDriverWait waiting = new WebDriverWait(fireDriver, 15, 100);
WebElement to=waiting.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=':1h4']")));

但它不起作用...... 我现在该怎么办?

2 个答案:

答案 0 :(得分:2)

创建另一个运行应用程序的qt应用程序。

#include <QApplication>
#include "QProcess"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QProcess aProcess;
    QString exe = "Your process name with exact path";
    QByteArray myOut;
    while(1)
    {
        aProcess.start(exe);
        //aProcess.waitForStarted();
        //myOut = aProcess.readAllStandardOutput();
        //printf("%s",myOut.constData());
        aProcess.waitForFinished(-1);

        //QString output(aProcess.readAllStandardOutput());

        myOut = aProcess.readAllStandardOutput();
        printf("%s",myOut.constData());
    }
    enter code here
    return a.exec();
}

此程序将在崩溃或关闭时重新启动您的应用

答案 1 :(得分:0)

你可以使用我的开源库: https://marketplace.qt.io/products/main-loop-wdt-for-qt-qml

它是主循环的看门狗定时器,仅在主循环冻结(双互斥锁、无限循环等)时起作用,但在应用程序崩溃时不起作用。