如何在qt上使用终端命令

时间:2013-05-15 06:21:18

标签: qt terminal command

我是一个项目的QT,我想在QT上编译和运行几个C ++代码。我编写了以下代码来编译C ++文件。但我不知道如何检查程序是否编译正确。如果程序编译完成后,如何在终端中运行它?

修订后的代码:

void MainWindow::on_actionComplile_triggered()
{
    QProcess compile;
    compile.setWorkingDirectory("/home");
    compile.setReadChannel(QProcess::StandardOutput);
    compile.setProcessChannelMode(QProcess::MergedChannels);
    QTextStream out(stdout);

    compile.start("gnome-terminal");
    compile.write("ls"); //these lines do not get printed.  

    compile.waitForReadyRead();
    compile.waitForFinished(-1);

    QByteArray msg = compile.readAll();
    out << msg.data() << endl;
}

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

void MainWindow::on_actionComplile_triggered()
{
    QProcess compile;
    compile.setWorkingDirectory("/home/royal");
    compile.setReadChannel(QProcess::StandardOutput);
    compile.setProcessChannelMode(QProcess::MergedChannels);
    QTextStream out(stdout);

    compile.start("g++",QStringList() << "tes.cpp" << "-o" << "test");
    compile.waitForFinished(-1);

    QByteArray msg = compile.readAllStandardOutput();
    if(msg.isEmpty())
    {
        qDebug() << "Successful";
    }
    else qDebug() << "Failed";
}