如何开发PySide应用程序插件?

4 qt pyqt pyside

据我了解,Qt 提供了 2 个主要的插件机制:

  1. 扩展 Qt 的插件“Qt Extensions”
  2. 扩展使用 Qt 开发的应用程序的插件

我有兴趣为我的应用程序开发插件 (2)。

我使用 PySide,但找不到任何有关使用 PySide/PyQt 开发应用程序插件的资源。

根据 C++ Qt 文档,我了解应用程序必须使用Q_DECLARE_INTERFACE()宏,并且插件必须使用Q_INTERFACES()Q_EXPORT_PLUGIN2()宏,但我不知道它们代表的代码尝试将其转换为 python 。或者还有我错过的另一种方式吗?

更新:

到目前为止,我能找到的最接近解决方案的是Alex Martelli 对类似问题的回答。虽然看起来它可以工作,但我宁愿使用官方的 Qt 方法来避免任何跨平台问题。

Sim*_*bbs 5

我认为 Qt 的插件系统旨在允许人们编写编译为二进制文件的 C++ 插件。我什至不知道理论上是否可以用 Python 编写使用 C++ 二进制接口的插件。

如果您想支持 Python 插件,最好的选择是使用众多纯 Python 插件系统之一。我编写了一个 PySide 应用程序,它使用 YAPSY 加载插件脚本。YAPSY 是一个非常简单、紧凑的插件模块。它很容易直接包含在您的应用程序中,因为它是单个文件,并且已获得 BSD 许可,因此您可以在商业上使用它。只需在谷歌上搜索即可。我什至能够使用 py2exe 打包我的应用程序,并且仍然保留从插件目录导入 python 源文件插件的能力。