c++ - QPluginLoader 与 PyQt 模块作为插件 : possible?

标签 c++ python qt plugins pyqt

由于 QPluginloader,我有一个加载外部插件的 C++ 应用程序。
QPluginLoader 提供对 Qt 插件的访问。 Qt 插件存储在共享库(DLL)中。

插件必须继承自纯虚类(和Q_DECLARE_INTERFACE)和QObject

我想使用 python 和 PyQt 创建插件。
这可能不需要太多工作吗?
例如,如果我必须使用 boost::python 将模块转换为 C++,这可能是无稽之谈,因为 PyQt 已经是从 C++ 到 Python 的转换...

谢谢!

编辑:
我查看了有关插件的 pyqt 文档:
http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/pyqt4ref.html#writing-qt-designer-plugins

PyQT 有一个用于 qt 设计器插件的特定类 QPyDesignerCustomWidgetPlugin
但是这个类在 QtDesigner.pyd 模块中,所以我看不到代码以复制相同的架构。

编辑2:
http://www.boddie.org.uk/david/Projects/Python/Qt/
文件 pyqt4-embedded-examples-2008-02-13.tar.gz
包含在 C++ 中集成 PyQt Widget 的代码示例。但是您不使用 QPluginLoader 并且必须将 python 解释器 header 集成到您的 C++ 主代码中。

再次感谢

最佳答案

好吧,我认为不做太多工作是不可能的。如果您在 PyQt 中编写模块,您可能必须将整个 Python 解释器添加到您的可执行文件中才能解释这些模块。即使您将这些模块翻译成 C++,翻译后的函数在某些时候也必须调用 Python API,从而引入对 Python 本身的依赖。

关于c++ - QPluginLoader 与 PyQt 模块作为插件 : possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2691724/

相关文章:

c++ - 我的 wxFrame 周围有一个 1 px 的细边框,尽管我要求没有边框。为什么?

c++ - 在模板调用中将包装器类隐式转换为父类(super class)

python - 为多个加载器设置 aiohttp_jinja2

python - python内置函数存储在哪里?

c++ - 如何添加和读取两种类型变量的 vector 元素

c++ - snprintf 的逆函数

c++ - DLL 的全局变量存储在内存中的什么位置?

python - 当任何线程中出现异常时,多处理池挂起

qt - 如何在 QML 中集成 QWidget (Qt Quick 2.0)

c++ - Qt 不会使用 exiv2.dll 编译项目