QPluginLoader с модулями PyQt в качестве плагинов: возможно? - PullRequest
1 голос
/ 22 апреля 2010

У меня есть приложение на C ++, которое загружает внешние плагины благодаря QPluginloader.
QPluginLoader предоставляет доступ к плагину Qt. Плагин Qt хранится в общей библиотеке (DLL).

Плагины должны наследоваться от чисто виртуального класса (и Q_DECLARE_INTERFACE) и QObject.

Я хотел бы создать плагины, используя python и PyQt.
Это возможно без особой работы?
Например, если мне нужно преобразовать модули в C ++ с boost::python, это может быть бессмысленным, поскольку PyQt уже является преобразованием из C ++ в Python ...

Спасибо!

Edit:
Я посмотрел в документ PyQT относительно плагинов:
http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/pyqt4ref.html#writing-qt-designer-plugins

PyQT имеет специальный класс QPyDesignerCustomWidgetPlugin для плагинов QT Designer.
Но этот класс находится в модуле QtDesigner.pyd, поэтому я не вижу код для того, чтобы повторить ту же архитектуру.

Edit2:
http://www.boddie.org.uk/david/Projects/Python/Qt/
Файл pyqt4-embedded-examples-2008-02-13.tar.gz
Содержит пример кода для интеграции PyQt Widget в C ++. Но вы не используете QPluginLoader и должны интегрировать заголовки интерпретатора python в ваш основной код C ++.

Еще раз спасибо

1 Ответ

2 голосов
/ 27 апреля 2010

Ну, я не думаю, что это возможно без слишком большой работы.Если вы напишите модуль на PyQt, скорее всего, вам придется добавить весь интерпретатор Python в ваш исполняемый файл, чтобы иметь возможность интерпретировать эти модули.Даже если вы переведете эти модули в C ++, переведенные функции в какой-то момент будут вынуждены вызывать API Python, тем самым вводя зависимость от самого Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...