Pythonの配列を渡すためにQtはどのように呼び出すのか。
QtでPythonを呼び出して配列を渡す方法には、いくつかの方法がありますが、一般的な2つの方法を以下に示します:
Option:
方法1:Pythonスクリプトを呼び出すためにQProcessを使用する。
QStringList arguments;
arguments << "your_python_script.py" << "arg1" << "arg2" << "...";
QProcess process;
process.start("python", arguments);
process.waitForFinished();
QString output = process.readAllStandardOutput();
在Python脚本中可以通过sys.argv获取传递的参数,其中argv[0]是脚本路径,后面的参数依次是传递的数组元素。
PyQtのQPythonCallableを使用してPython関数を呼び出す方法:
#include <QApplication>
#include <QAxScript>
#include <QAxObject>
#include <QDebug>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QAxScript engine("Python");
engine.setScript("your_python_script.py");
engine.start();
QAxObject* function = engine.globalObject().querySubObject("your_python_function_name");
QVariantList arguments;
// 将数组元素加入到arguments中
arguments << QVariant(1) << QVariant(2) << QVariant(3);
QVariant result = function->call(QVariant(arguments));
qDebug() << result;
engine.quit();
return a.exec();
}
Pythonスクリプトでは、受信した配列を扱う関数を呼び出し可能なオブジェクトとして定義する必要があります。
def your_python_function_name(arg_list):
# 处理数组
return "result"
この方法は、QAxScriptを使用する必要があり、.proファイルにQT += axcontainerを追加する必要があります。
上記は一般的な2つの方法であり、状況に応じて適切な方法を選択してPythonを呼び出し、配列を渡すことができます。