【问题标题】:How to use terminal commands on qt如何在qt上使用终端命令
【发布时间】:2013-05-15 06:21:17
【问题描述】:

我是一个项目的 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;
}

【问题讨论】:

  • QT != Qt。为什么您没有按照QProcess 文档中的说明阅读输出? qt-project.org/doc/qt-4.8/…
  • 抱歉我犯的错误。我已经通过它们,我可以编译程序;我需要帮助写信给终端。当我尝试 write("g++");它不会在终端上显示命令
  • 我已经修改了相同的代码。抱歉,我不知道如何在新线程中上传它,因为我是新来的。如果您能帮我解决这个问题,那将是很大的帮助。

标签: qt terminal command


【解决方案1】:

我找到了解决方案:

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";
}

【讨论】:

    猜你喜欢
    • 2019-05-10
    • 1970-01-01
    • 2016-04-05
    • 2020-11-11
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多