【发布时间】:2015-12-23 17:24:46
【问题描述】:
我正在尝试在 Windows 7 上使用 Active Qt 将一些 matplotlib 图形嵌入到 ActiveX 组件中,并且已经成功地将 matplotlib 图形嵌入到常规 Qt 项目中。
使用 Qt 文档中的 Simple 和 Menus 示例作为参考,我设法将 Python 解释器嵌入到 ActiveX 组件中,并运行一些基本的 Python 代码,这些代码使用 PyQt5 构造 QWidget 对象。
这一切都很好,我可以使用 PyQt 构建 ActiveX 组件的部分接口,并在使用 Python 和 c++ 等创建的小部件之间发送信号,没有任何问题。我什至可以使用 PyQt5 后端创建 matplotlib FigureCanvas 对象。但是,一旦我尝试嵌入一个添加了子图的FigureCanvas,我的 ActiveX 组件就会崩溃,并出现一个通用的 Visual C++ 运行时错误:
应用程序已请求运行时以不寻常的方式终止它。请联系应用程序的支持团队了解更多信息。
更糟糕的是,我无法运行调试构建,因为 libpython 的调试构建需要构建所有已编译扩展模块依赖项的调试构建,而我在构建 numpy 时没有任何运气/scipy 从头开始。
是否有人对可能导致此崩溃的原因有任何想法?我想知道它是否与 COM 对象或 Python GIL 使用的线程模型有关,但我对这些主题知之甚少。欢迎提出任何建议。
【问题讨论】:
标签: python qt matplotlib pyqt activex