QProcess不适用于“〜”符号

时间:2015-10-13 02:48:51

标签: qt ubuntu qprocess

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

以下代码有效:

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

但是,如果我使用“〜”代表主目录,它将无效:

    QString cmd = "~/executableFile";

也许这是一个愚蠢的问题,但我真的想知道原因。 希望得到你的帮助。谢谢!

1 个答案:

答案 0 :(得分:4)

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

$ echo ~
/home/jbm

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