QProcess调用gksudo,其中包含用于调用脚本的个性化消息的参数

时间:2014-02-21 09:04:37

标签: linux qt ubuntu gksudo

如何使用 QProcess - 消息“文字”等参数解析为 / usr / bin / gksudo 以显示我的个性化文本?

只需使用 / usr / bin / gksudo 并调用我的 script.sh 就可以了。

这里是最小的例子:

QString cmd = QString("/usr/bin/gksudo");
QStringList param = ( QStringList << "--message my Text" << "path/to/script.sh")

QProcess.start( cmd, param );

即使我尝试将参数添加到 cmd ,我也会失败。并且没有显示密码提示。

QString cmd = QString("/usr/bin/gksudo --message MyText");

2 个答案:

答案 0 :(得分:1)

<强>解决方案

- 消息我的文字都是自己的元素。

QStringList param = ( QStringList << "--message" << tr("my Text") << "path/to/script.sh")

答案 1 :(得分:0)

QProcess将第一个参数作为要运行的命令,然后将以空格分隔的以下参数作为命令的参数传递。

执行此操作时: -

QStringList param = ( QStringList << "--message my Text" << "path/to/script.sh")

然后将param传递给QProcess,它将“path / to / script.sh”作为命令行参数传递给gksudo,但你想要的是带有 - message 的单个参数。您需要使用额外的引号来统一参数。所以,就你最后一个例子而言,那就是: -

QString cmd = QString(“/ usr / bin / gksudo \” - 消息MyText“\”);

请注意附近的两个 \“ - 消息MyText

将此传递给QProcess意味着有两个参数;调用 gksudo 及其命令行参数“ - message MyText