2010-04-22 27 views
0

我有一個加載外部插件的C++應用程序,感謝QPluginloader
QPluginLoader提供對Qt插件的訪問。 Qt插件存儲在共享庫(DLL)中。帶有PyQt模塊的QPluginLoader作爲插件:可能嗎?

插件必須繼承純虛擬類(和Q_DECLARE_INTERFACE)和QObject

我想通過使用python和PyQt來創建插件。
這可能沒有太多的工作?
舉例來說,如果我有這些模塊的C++轉換與boost::python,這可能是廢話,因爲PyQt已經從C++到Python的轉換...

謝謝!

編輯:
我已經調查關於PyQt的插件的文檔:
http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/pyqt4ref.html#writing-qt-designer-plugins

PyQT對Qt Designer的插件特定的類QPyDesignerCustomWidgetPlugin
但是這個類在QtDesigner.pyd模塊中,所以我看不到代碼以便複製相同的體系結構。

EDIT2:
http://www.boddie.org.uk/david/Projects/Python/Qt/
文件PyQt4的包埋-例子-2008-02-13.tar.gz
包含代碼示例集成++ PyQt的窗口小部件中℃。但是你不使用QPluginLoader,而必須將Python解釋器頭文件集成到你的C++主代碼中。

再次感謝

回答

2

嗯,我不認爲這是可能的沒有太多的工作。如果你在PyQt中編寫模塊,很可能你必須將整個Python解釋器添加到你的可執行文件中,以便能夠解釋這些模塊。即使將這些模塊翻譯爲C++,翻譯後的函數也必須在某個時刻調用Python API,從而引入了對Python本身的依賴。

+0

確實,我看到pythonplugin.dll PyQt4 \ plugins \ designer意味着有一種方法可以將Python代碼作爲設計器插件進行集成。但我不知道。謝謝 – Thorfin 2010-04-28 13:54:47

+1

'pythonplugin.dll'是PyQt4的一部分,而不是Qt4。事實上,它允許您在Qt Designer中使用基於Python的插件,但它也會回調Python以解釋這些模塊。如果你將'pythonplugin.dll'加載到Dependency Walker(請參閱http://www.dependencywalker.com/),你會發現它依賴於Python。 – 2010-04-28 14:02:53

相關問題