【问题标题】:QProcess 6 arguments not workingQProcess 6 参数不起作用
【发布时间】:2015-01-25 18:56:24
【问题描述】:

我正在使用 QProcess 来连接 wifi 网络。但是当我尝试使用 6 个参数的代码时,它失败了,没有返回任何输出。

如果我在终端中执行命令,它开箱即用:nmcli dev wifi con "myssid" password "myssidpassword"

QStringList arguments{"dev", "wifi", "con", "\"myssid\"", "password", "\"myssidpassword\""};QProcess *process = new QProcess;
process->start("nmcli", arguments);
process->waitForFinished();
return process->readAll();

我做错了什么?谢谢。

PD:如果我使用 2 个参数执行其他 nmcli,它可以工作。

【问题讨论】:

  • 为什么ssid和密码要加双引号?
  • 因为某些 wifi 网络在 ssid 中​​有一个空间,如果我需要连接其中一个,如果我不加引号,该命令会将 ssid 的第二个单词解释为 nmcli 参数.
  • 这在 shell 引用方面绝对有效,但这是 C++!
  • 我试过不带引号但 QBytearray 正在处理->readAll();返回“”

标签: linux networking qt5 qprocess


【解决方案1】:

好的,qprocess 正在启动标准错误,所以我需要捕获字符串:

qDebug()readAllStandardError();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-14
    • 2022-11-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    相关资源
    最近更新 更多