【问题标题】:QProcess doesn't work with "~" symbolQProcess 不适用于“~”符号
【发布时间】:2015-10-13 02:48:50
【问题描述】:

我想使用 QProcess 来启动一个可执行文件,假设它位于主目录中。

以下代码有效:

    QProcess process;
    QString cmd = qgetenv("HOME") + "/executableFile";
    process.start(cmd);

但是,如果我使用“~”代表主目录,它将不起作用:

    QString cmd = "~/executableFile";

也许这是一个愚蠢的问题,但我真的很想知道为什么。 希望能得到您的帮助。谢谢!

【问题讨论】:

    标签: qt ubuntu qprocess


    【解决方案1】:

    ~ 是由 shell 处理的特殊字符。

    $ echo ~
    /home/jbm
    

    但是当你使用 QProcess 时,没有 shell 这样的东西来启动你的进程(只是一个环境,这是不一样的),因此“~”没有被处理,而是被视为一个字符文字实际上是您的可执行文件路径的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      • 2017-06-30
      • 2016-12-27
      • 1970-01-01
      相关资源
      最近更新 更多