Qt怎么调用Python传递数组

54次阅读
没有评论

共计 1040 个字符,预计需要花费 3 分钟才能阅读完成。

在 Qt 中调用 Python 并传递数组有多种方式,下面给出其中两种常见的方法:

方法一:使用 QProcess 调用 Python 脚本

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

以上是两种常见的方法,根据具体情况可以选择适合的方法来调用 Python 并传递数组。

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-02-05发表,共计1040字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)