最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • qt如何调用python

    正文概述    2020-06-11   267

    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

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元