我想将 Python解释器3.4嵌入到Qt 5.2.1应用程序(64位)中.
但是我有构建问题,我的意思是当我在main.cpp中包含Python头时它编译得很好.
#include <python.h>
#include "mainwindow.h"
#include <QApplication>

int main(int argc,char *argv[])
{
  QApplication a(argc,argv);
  MainWindow w;
  w.show();

  return a.exec();
}

但是当我把它放在其他地方时(在Qt标题之后)

//
// embedpytest.cpp
//
#include <QLibrary>
#include <python.h>


EmbedPyTest::EmbedPytest()
{
}

我得到编译错误:

C:\python34\include\object.h:435: error: C2059: Syntax error : ';'
C:\python34\include\object.h:435: error: C2238: unexpected token(s) preceding ';'

这与此问题非常相似,但解决方案无效

Embedding Python in Qt 5

谁知道如何解决这个问题?或建议一些干净的解决方法,以便python.h和Qt5
以后能幸福地生活在一起吗?

解决方法

违规行是这样的:
PyType_Slot *slots; /* terminated by slot==0. */

问题是,对于这一行,“slot”在Qt中默认是一个关键字.要在其他项目中使用该变量名,您需要在项目文件中使用它:

CONfig += no_keywords

有关详细信息,请参阅documentation:

Using Qt with 3rd Party Signals and Slots

It is possible to use Qt with a 3rd party signal/slot mechanism. You can even use both mechanisms in the same project. Just add the following line to your qmake project (.pro) file.

CONfig += no_keywords

It tells Qt not to define the moc keywords signals,slots,and emit,because these names will be used by a 3rd party library,e.g. Boost. Then to continue using Qt signals and slots with the no_keywords flag,simply replace all uses of the Qt moc keywords in your sources with the corresponding Qt macros Q_SIGNALS (or Q_SIGNAL),Q_SLOTS (or Q_SLOT),and Q_EMIT.

在Qt 5中嵌入Python3的更多相关文章

  1. 如何在Xcode 7上为项目选择python 3.5.1可执行文件?

    我想在Xcode中设置一个python3项目,但是在我要求为该方案选择可执行文件的步骤中我失败了.请参阅PythoninXcode4+?

  2. Compile Swift 4.0-dev on CentOS7.2

    4.changebranch./swift/utils/update-checkout--schemeswift-3.1-branch这个我没有用,直接就是最新的swift-4.0-dev5.runtimeblockgitclonehttps://github.com/mackyle/blocksruntime.gitCFLAGS='-fPIC'./buildlib./installlib找一个blocksruntime库先装上,Ubuntu上有现成的libblocksruntime-dev,CentOS

  3. python3中join和格式化的用法小结

    这篇文章主要介绍了python中os库的使用,本篇文章记录下python中os库的一些函数使用,对python os库使用感兴趣的朋友跟随小编一起看看吧

  4. gethostbyaddr在Python3中引发UnicodeDecodeError

    本文介绍了gethostbyaddr()在Python 3中引发UnicodeDecodeError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧

  5. Python3 DataFrame缺失值的处理方法

    这篇文章主要介绍了Python3 DataFrame缺失值的处理,包括缺失值的判断缺失值数据的过滤及缺失值数据的填充,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. Linux环境下安装python3

    这篇文章介绍了Linux环境下安装python3的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  7. python3线程池ThreadPoolExecutor处理csv文件数据

    这篇文章主要为大家介绍了python3线程池ThreadPoolExecutor处理csv文件数据实现的实例过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  8. Python3中map()、reduce()、filter()的用法详解

    这篇文章主要介绍了Python3中map()、reduce()、filter()的用法详解,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  9. python3利用pathlib替代os.path的方法实例

    os.path 模块始终是适合Python运行的操作系统的路径模块,因此可用于本地路径,下面这篇文章主要给大家介绍了关于python3利用pathlib替代os.path的相关资料,需要的朋友可以参考下

  10. 浅谈Python3中打开文件的方式(With open)

    本文主要介绍了浅谈Python3中打开文件的方式(With open),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部