Я хочу запустить python скрипт в моем проекте qt после нажатия кнопки с помощью QProcess. Это мой код:
void MainWindow::on_pushButton_clicked()
{
QProcess p;
QStringList params;
QString pythonPath = "C:/Python/python.exe";
QString pythonScript = "C:\\Users\\melek\\Desktop\\user_interface\\user_interface-master\\match.py";
params << pythonScript;
QStringList arguments;
arguments <<"-t1"<<"start.png"<<"-t2"<< "end.png"<<"-i"<< "images_";
p.setArguments(arguments);
p.start(pythonPath, params);
p.execute(pythonPath,params);
p.waitForFinished(-1);
QString p_stdout = p.readAll();
QString output(p.readAllStandardOutput());
QString p_stderr = p.readAllStandardError();
if(!p_stderr.isEmpty())
qDebug()<<"Python error:"<<p_stderr;
qDebug()<<"Python result="<<p_stdout;
qDebug()<<p_stdout;
qDebug()<<output;
}
Аргументы python показаны в python коде:
ap = argparse.ArgumentParser()
ap.add_argument("-t1", "--template1", required=True, help="Path to template image")
ap.add_argument("-t2", "--template2", required=True, help="Path to template image")
ap.add_argument("-i", "--images", required=True,
help="Path to images where template will be matched")
ap.add_argument("-v", "--visualize",
help="Flag indicating whether or not to visualize each iteration")
Это то, что я пишу в терминале python для Запустите программу правильно: path_to_script\python python match.py --template1 start.png --template2 end.png --images images_
Где шаблоны 1 и 2 - это две картинки png, images_
- папка и --visualize
не должно быть задано в терминале.
После запуска программы в QT я получаю следующую ошибку:
usage: match.py [-h] -t1 TEMPLATE1 -t2 TEMPLATE2 -i IMAGES [-v VISUALIZE]
match.py: error: the following arguments are required: -t1/--template1, -t2/--template2, -i/--images