Qt调用python

由于工作的需要,有个项目需要在Qt中调用python,弄了半天各种出问题最后找到一位大佬文章传送门完美解决了这个问题。

// .pro中
INCLUDEPATH += -I C:\python10\include
LIBS += -LC:\python10\libs\ -lpython310

```cpp
#include <QApplication>
#include <Python.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    Py_Initialize();
    if ( !Py_IsInitialized() )
    {
    return -1;
    }
    PyObject* pModule = PyImport_ImportModule("test_py");  // 这里的test_py就是创建的python文件
    if (!pModule) {
            cout<< "Cant open python file!\n" << endl;
            return -1;
        }
   PyObject* pFunhello= PyObject_GetAttrString(pModule,"hello");  // 这里的hellow就是python文件定义的函数
    if(!pFunhello){
        cout<<"Get function hello failed"<<endl;
        return -1;
    }
    PyObject_CallFunction(pFunhello,NULL);
    Py_Finalize();

   return a.exec();
}

注意这里名字一定要_py.py

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

如果是没有找到文件需要在build哪里复制一份,如图
在这里插入图片描述
代码我放在这里–>gite
需要传递参数的例子(但是这个很乱)
详细原理Py_BuildValue

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值