2012-01-22 16 views
2

據我瞭解Qt提供了2個主要的插件機制:如何開發PySide應用程序插件?

  1. 插件擴展Qt的「Qt的擴展」
  2. 插件擴展使用Qt開發的應用程序

我感興趣的開發插件爲我的申請(2)。

我使用PySide,但找不到任何有關使用PySide/PyQt開發應用程序插件的資源。

繼C++ Qt文檔我的理解是,應用程序必須使用Q_DECLARE_INTERFACE()宏和插件必須使用兩個Q_INTERFACES()Q_EXPORT_PLUGIN2()宏,但我不知道他們代表的代碼嘗試並將其翻譯爲python。還是有另一種我錯過的方式?

更新:

最接近的一個解決方案,我能找到到目前爲止Alex Martelli's answer to a similar question。雖然它看起來會起作用,但我寧願使用官方的Qt方法來避免任何跨平臺問題。

回答

4

我認爲Qt的插件系統旨在讓人們編寫編譯爲二進制文件的C++插件。我甚至不知道理論上是否可以用Python編寫插件來使用像這樣的C++二進制接口。

如果你想支持Python插件,最好的辦法是使用其中的一個純Python插件系統。我寫了一個使用YAPSY加載插件腳本的PySide應用程序。 YAPSY是一個非常簡單,緊湊的插件模塊。將它直接包含在您的應用中非常簡單,因爲它是單個文件,並且已獲得BSD許可,因此您可以將其用於商業用途。只需在Google上進行搜索即可。我甚至可以使用py2exe打包我的應用程序,並仍然保留從插件目錄導入python源文件插件的功能。

+0

+1對於YAPSY的建議。我一直在閱讀它,並使用PyQt發現了一個很好的教程(http://lateral.netmanagers.com.ar/weblog/posts/BB923.html)。 – Saif