Как разработать плагин для приложения PySide? - PullRequest
2 голосов
/ 22 января 2012

Насколько я понимаю, Qt предоставляет 2 основных механизма плагинов:

  1. Плагины, расширяющие Qt "Qt Extensions"
  2. Плагины, расширяющие приложения, разработанные с помощью Qt

Я заинтересован в разработке плагинов для моего приложения (2).

Я использую PySide, но не могу найти никаких ресурсов о разработке плагинов для приложений с использованием PySide / PyQt.

Следуя документации на C ++ Qt, я понимаю, что приложение должно использовать макрос Q_DECLARE_INTERFACE () , а плагины должны использовать оба Q_INTERFACES () и Q_EXPORT_PLUGIN2 () макросы, но я не знаю код, который они представляют, чтобы попытаться перевести его на python. Или есть другой способ, который я пропустил?

Обновление:

Самым близким к решению, которое я смог найти, является ответ Алекса Мартелли на аналогичный вопрос . Хотя похоже, что это сработает, я бы предпочел использовать официальный подход Qt, чтобы избежать кросс-платформенных проблем.

1 Ответ

4 голосов
/ 30 января 2012

Я думаю, что система плагинов Qt предназначена для того, чтобы люди могли писать плагины C ++, скомпилированные как двоичные файлы.Я даже не знаю, возможно ли теоретически написать плагины в Python, которые будут использовать бинарный интерфейс C ++, подобный этому.

Если вы хотите поддерживать плагины Python, вам лучше всего использовать один из множества чистыхсистемы плагинов Python там.Я написал приложение PySide, которое использует YAPSY для загрузки скриптов плагина.YAPSY - это очень простой, компактный плагин-модуль.Его очень легко включить непосредственно в ваше приложение, так как он представляет собой один файл и имеет лицензию BSD, поэтому вы можете использовать его в коммерческих целях.Просто найдите его в Google.Я даже смог упаковать свое приложение, используя py2exe, и все еще сохранял возможность импортировать плагины исходного файла python из каталога плагинов.

...