导语:
本文主要介绍了关于qt如何调用python的相关知识,包括python调用qt函数,以及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();}
推荐学习《
》
之后我们新建一个名为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 是一个跨平台的图形用户界面应用程序。 Linux、OSX、Windows下Python的路径不同,往往是路径错误导致程序无法正常运行。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何理解python中的Prewitt算子11/25
- ♥ 如何使用python进行数据可视化11/29
- ♥ python类属性的内存分析11/11
- ♥ 哪个命令可以查看python的版本号10/26
- ♥ python如何打印变量10/03
- ♥ 如何在python中使用round函数08/13
内容反馈