Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何在QProcess中处理输入参数_Qt_Parameters_Arguments_Qprocess - Fatal编程技术网

Qt 如何在QProcess中处理输入参数

Qt 如何在QProcess中处理输入参数,qt,parameters,arguments,qprocess,Qt,Parameters,Arguments,Qprocess,以下简单python代码需要命令行中“test.py”(除了“python”和“test.py”)的三个输入参数: #!/usr/bin/python import sys def main(argv): if (len(sys.argv) < 4): print ('argv must be greater than 4') else: print ('Number of arguments:', len(sys.argv), 'arguments.

以下简单python代码需要命令行中“test.py”(除了“python”和“test.py”)的三个输入参数:

#!/usr/bin/python
import sys

def main(argv):
   if (len(sys.argv) < 4):
       print ('argv must be greater than 4')
   else:
     print ('Number of arguments:', len(sys.argv), 'arguments.')
     print ('Argument List:', str(sys.argv))

if __name__ == "__main__":
   main(sys.argv[1:])
我使用以下简单的Qt代码,但它无法生成上述结果。Qt中是否有办法模仿上述命令行,即“python命令arg1。。。argN'。 注意:在这种情况下必须使用“python”

   QProcess *qtq = new QProcess();
   QString program("python");
   QStringList arguments("test.py arg1 arg2 arg3");
   qtq->setProgram(program);
   qtq->setArguments(arguments);
   qtq->start();
   qtq->waitForReadyRead();
   qtq->waitForFinished();
   QByteArray s =  qtq->readAll();
   qDebug() << s;
QProcess*qtq=新的QProcess();
QString程序(“python”);
QStringList参数(“test.py arg1 arg2 arg3”);
qtq->setProgram(程序);
qtq->setArguments(参数);
qtq->start();
qtq->waitForReadyRead();
qtq->waitForFinished();
QByteArray s=qtq->readAll();
qDebug()
这就是你的问题所在。这将创建一个只包含一个字符串的QStringList,它将作为一个参数传递给python。你应该改为:

QStringList arguments;
arguments << QString("test.py");   
arguments << QString("arg1");
arguments << QString("arg2");
arguments << QString("arg3");
QStringList参数;

你怎么知道它失败了?错误或意外行为是什么?
QStringList参数({“test.py”、“arg1”、“arg2”、“arg3”})
@MohammadKanan括号是不必要的:
QStringList参数{“test.py”、“arg1”、“arg2”、“arg3”}
QStringList arguments("test.py arg1 arg2 arg3");
QStringList arguments;
arguments << QString("test.py");   
arguments << QString("arg1");
arguments << QString("arg2");
arguments << QString("arg3");