![图片[1]-qt如何调用python-uusu优素-乐高,模型,3d打印,编程](http://uusucn.zbbe.cn/wp-content/uploads/2024/01/5e8703373d3ac649.jpg)
Qt是一个跨平台的c++图形用户界面应用程序框架,而Python是一门非常强大的编程语言,本文主要介绍了如何在OSX系统下Qt调用
Python脚本。
先上代码:
#include<QCoreApplication>//包含调用Python相应的头文件#include<Python.h>intmain(intargc,char*argv[]){
QCoreApplicationa(argc,argv);
//初始化Python解释器,这是调用操作的第一步
Py_Initialize();
if(!Py_IsInitialized()){
return-1;
}
//执行单句Python语句,用于给出调用模块的路径,否则将无法找到相应的调用模块
PyRun_SimpleString("importsys");
PyRun_SimpleString("sys.path.append('./')");//获取qt_python_fun.py模块的指针
PyObject*pModule=PyImport_ImportModule("qt_python_fun");
if(!pModule){
printf("Can'topenpythonfile\n");
return-1;
}//获取hello函数的指针
PyObject*pFunhello=PyObject_GetAttrString(pModule,"hello");
if(!pFunhello){
printf("Getfunctionhellofailed\n");
return-1;
}//调用函数,传入参数为NULL
PyObject_CallFunction(pFunhello,NULL);//销毁Python解释器,这是调用的最后一步
Py_Finalize();
returna.exec();}
推荐学习《python教程》
之后我们新建一个名为qt_python_fun.py的python文件

写入以下代码:
#!/usr/bin/envpython#-*-coding:utf-8-*-defhello(): 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
这时,我们的程序才正真可以运行

© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END

















































暂无评论内容