小编给大家分享一下qt调用python的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
十余年的武陵源网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整武陵源建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“武陵源网站设计”,“武陵源网站推广”以来,每个客户项目都认真落实执行。
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();}
推荐学习《python教程》
之后我们新建一个名为qt_python_fun.py的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
这时,我们的程序才正真可以运行
以上只是最简单的调用,关于C/C++ 和Python之间的互相调用网上可以搜索到大量的资源以供学习。值得注意的是路径的添加,Qt是跨平台的图形用户界面应用程序,Python在Linux,OSX,Windows下的路径均有不同,而往往就是路径错误使得程序无法正常运行。
看完了这篇文章,相信你对qt调用python的方法有了一定的了解,想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!