从QT按钮运行外部程序

时间:2017-07-26 16:03:17

标签: c++ linux qt qprocess

我在QT中创建了一个带有一个按钮的主窗口,当我点击按钮时尝试运行一个额外的小程序时,它不起作用。我有以下代码:

void MainWindow::on_pushButton_clicked()
{
    QProcess *process = new QProcess(this);
    process->start("/home/helloworld.out");
}

我正在使用Linux。有什么想法会发生什么?先感谢您。

1 个答案:

答案 0 :(得分:0)

您正在开始您的流程,然后立即返回。如果您不打算连接QProcess中的任何信号,则可以静态分配它以避免使用deleteLater

尝试这样的事情。

void MainWindow::on_pushButton_clicked()
{
    QProcess process;;

    process.start("~/helloworld.out");
    process.waitForStarted();
    process.waitForFinished();
    process.close();
}

我会走出困境并建议你可能不是/home/helloworld.out而是~/helloworld.out。在任何情况下都要检查路径是否存在。