python调用qt_Qt 下调用 Python

Qt是一个跨平台的c++图形用户界面应用程序框架,而Python是一门非常强大的编程语言,本文主要介绍了如何在OSX系统下Qt调用Python脚本。

先上代码:

#include

//包含调用Python相应的头文件

#include

int main(int argc, char *argv[])

{

QCoreApplication a(argc, argv);

//初始化Python解释器,这是调用操作的第一步

Py_Initialize();

if( !Py_IsInitialized() ){

return -1;

}

//执行单句Python语句,用于给出调用模块的路径,否则将无法找到相应的调用模块

PyRun_SimpleString("import sys");

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

//获取qt_python_fun.py模块的指针

PyObject* pModule = PyImport_ImportModule("qt_python_fun");

if (! pModule){

printf("Can't open python file\n");

return -1;

}

//获取hello函数的指针

PyObject* pFunhello = PyObject_GetAttrString(pModule,"hello");

if (!pFunhello){

printf("Get function hello failed\n");

return -1;

}

//调用函数,传入参数为NULL

PyObject_CallFunction(pFunhello,NULL);

//销毁Python解释器,这是调用的最后一步

Py_Finalize();

return a.exec();

}

之后我们新建一个名为qt_python_fun.py的python文件

新建Python文件

写入以下代码:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

def hello():

print "hello"

此时我们的代码依旧无法运行,因为在C++中调用Python在编译时需要添加相关的路径,在OSX系统中,我们需要在后缀为.pro的文件中加入以下代码:

INCLUDEPATH += -I /System/Library/Frameworks/Python.framework/Versions/2.7/Headers

LIBS += -L /System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -lpython2.7

这时,我们的程序才正真可以运行

运行效果

以上只是最简单的调用,关于C/C++ 和Python之间的互相调用网上可以搜索到大量的资源以供学习。值得注意的是路径的添加,Qt是跨平台的图形用户界面应用程序,Python在Linux,OSX,Windows下的路径均有不同,而往往就是路径错误使得程序无法正常运行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值