温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

qt调用python的方法

发布时间:2020-08-03 11:33:55 来源:亿速云 阅读:603 作者:清晨 栏目:编程语言

小编给大家分享一下qt调用python的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

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

Python脚本。

先上代码:

#include <QCoreApplication>//包含调用Python相应的头文件#include <Python.h>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();}

推荐学习《python教程》

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

qt调用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/HeadersLIBS += -L /System/Library/Frameworks/ Python.framework/Versions/2.7/include/python2.7 -lpython2.7

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

qt调用python的方法

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

看完了这篇文章,相信你对qt调用python的方法有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI