【问题标题】:Qt run shell on terminalQt 在终端上运行 shell
【发布时间】:2015-08-12 08:34:48
【问题描述】:

我需要在 mac 中从 Qt 应用程序运行 shell

QString strProcess = "/bin/bash ";
strProcess += (QDir::currentPath() + "/../../../apk_build.sh");
strProcess += " -a " + ui->textEdit_apk->toPlainText();
strProcess += " -o " + ui->textEdit_out->toPlainText();
strProcess += " -c " + ui->textEdit_channel->toPlainText();
QProcess process;
process.execute(strProcess);

这里有些问题。

问题1:终端无法显示内容信息,需要查看运行信息。

问题2:找不到apktool:找不到命令。如果我在没有 Qt 应用程序的终端中执行命令,可以找到 apktool(apktool 路径:/usr/bin/apktool)。

【问题讨论】:

  • 关于“问题1”:你想得到脚本的输出吗?关于“问题 2”:Qt 程序中 $PATH 变量的值是多少?检查通过运行echo $PATH 使用QProcess
  • "problem 1":是的,我想得到脚本的输出。"problem 2":it show $PATH

标签: linux qt shell


【解决方案1】:

问题1 如果您只想保存进程的输出,则只需设置进程的标准输出即可。

void QProcess::setStandardOutputFile ( const QString & fileName, OpenMode mode = Truncate )

如果你想实时获得输出,那么你必须通过调用 read()、readLine() 函数将你的进程作为标准的顺序 I/O 设备来处理。

问题 2 您必须加载用户的环境变量。尝试:

source /etc/profile

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2013-01-02
    • 1970-01-01
    • 2012-11-18
    • 2020-04-06
    • 2020-12-11
    • 2014-05-30
    • 2017-10-28
    相关资源
    最近更新 更多