如何使用 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");
答案 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 ”