知行编程网知行编程网  2022-10-20 12:00 知行编程网 隐藏边栏  48 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于qt如何调用python的相关知识,包括python调用qt函数,以及qt和Python这些编程知识,希望对大家有参考作用。

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文件

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 是一个跨平台的图形用户界面应用程序。 Linux、OSX、Windows下Python的路径不同,往往是路径错误导致程序无法正常运行。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享