qt调用python文件函数以及整体打包(1)

qt调用python文件函数以及整体打包(1)

*新建qt工程调用python****文件

1、新建一个qt工程(方便调试,第一次建议选择qt控制台应用)

qt调用Python文件找不到函数 qt调用python库_qt调用Python文件找不到函数

2、一直点击下一步,我选择mingw,选择msvc2015后期会与mingw有一个地方不一样

3、右键工程名字,add new->python->python file ->名字随便起(回合原始文件冲突)

qt调用Python文件找不到函数 qt调用python库_支付宝_02

qt调用Python文件找不到函数 qt调用python库_qt_03

qt调用Python文件找不到函数 qt调用python库_qt_04

4、在qt的pro文件里添加python的include和libs

INCLUDEPATH +=./python39/include/   
LIBS += -L./python39/libs \
        -l_tkinter\
        -lpython3\
        -lpython39

5、在main.cpp里面添加

#include <math.h>
#include <Python.h>
#include "QDebug"
#include <iostream>
using namespace std;
#include <QCoreApplication>
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    Py_SetPythonHome(L"./python39/");
    Py_Initialize();
    if ( !Py_IsInitialized() )
    {
        qDebug() <<'2';
    }
    PyObject* pModule = PyImport_ImportModule("test_1");  // 这里的test_1就是创建的python文件
    if (!pModule) {
            cout<< "Cant open python file!\n" << endl;
            qDebug() <<'3';
        }
    PyObject* pFunhello= PyObject_GetAttrString(pModule,"hello");  // 这里的hellow就是python文件定义的函数
 
    if(!pFunhello){
        cout<<"Get function hello failed"<<endl;
        qDebug() <<'4';
    }
    PyObject_CallFunction(pFunhello,NULL);
    Py_Finalize();
    return a.exec();
}

6、在test_1.py中添加

def hello():
    print('2')

7、点击编译会报错,把我分享的python39文件夹复制过去,然后再次点击编译,成功,如果没有用我给的python环境会出现以下问题

8、点击运行,会出现can’t open python file ,原因是我们需要把我们的c++代码调用的python文件地址是相对路径,所有需要把python文件复制到build文件夹里

qt调用Python文件找不到函数 qt调用python库_开发语言_05

9、修改完之后,重新运行即可成功

qt调用Python文件找不到函数 qt调用python库_开发语言_06

*qt工程调用支付宝的python****支付文件(此教程与上面的有些许区别)

1、因为支付宝的python文件里面需要导入alipay的sdk,所以当我直接们import alipay时,也会报can’t open python file,因为这个alipay不在当前文件夹下面,所以需要我们手动复制到相同文件夹,此外我们还需要复制pymysql,rsa两个文件夹(如下图所示)

qt调用Python文件找不到函数 qt调用python库_开发语言_07

2、登录支付宝的沙盒https://openhome.alipay.com/platform/appDaily.htm

个人支付宝是扫码即可,

qt调用Python文件找不到函数 qt调用python库_qt调用Python文件找不到函数_08

3、我们需要自定义密钥(如下图),生成密钥的网站为https://miniu.alipay.com/keytool/create

qt调用Python文件找不到函数 qt调用python库_开发语言_09

4、如下图选项,点击生成

qt调用Python文件找不到函数 qt调用python库_python_10

5、将生成的应用公钥复制到下图的框内,保存设置

qt调用Python文件找不到函数 qt调用python库_qt调用Python文件找不到函数_11

6、完成后会出现下方的图,

qt调用Python文件找不到函数 qt调用python库_支付宝_12

7、复制支付宝的公钥和应用私钥以及APPID到我们的python代码中(如下图所示)

qt调用Python文件找不到函数 qt调用python库_qt_13

8、主要代码介绍

第一行的pay(订单号,金钱,订单主题,订单超时时间)

第二和第三行就是生成二维码的信息

第四行的if是判断有无支付成功

qt调用Python文件找不到函数 qt调用python库_qt调用Python文件找不到函数_14