QT 调用Python文件并传输参数(转载)

(1) python文件如下 
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    def hello():
        print("hello world!")

    def greatFunc():
        print("hello world,greatFunc!")


    def Add(a, b , para):
        print("111232");
        return a+b;


(2) qt 调用代码如下
    void MainWindow::on_pushButton_py_3_clicked()
    {
        //进行初始化
        Py_Initialize();

        //如果初始化失败,返回
        if(!Py_IsInitialized())
        {
            qDebug()<<"Py_IsInitialized is null";
        }

        PyRun_SimpleString("import sys");
        PyRun_SimpleString("sys.path.append('./')");

        //加载模块,模块名称为myModule,就是myModule.py文件
        PyObject *pModule = PyImport_ImportModule("myModule");

        //如果加载失败,则返回
        if(!pModule)
        {
            qDebug()<<"pModule is null ";
            return;
        }
        else
        {
            PyObject* pRet=PyObject_CallMethod(pModule,"Add","iis",8,9,"woshi");
            if (!pRet)
            {
                printf("不能找到 pRet");
                return ;
            }

            int info;
            PyArg_Parse(pRet, "i", &info);
            qDebug()<<"result="<<info<<endl;
        }

        Py_Finalize();
    }
(3) 完美输出结果17。

上一篇:第四篇笔记


下一篇:python3 源码阅读-虚拟机运行原理