Пользовательские QWidgets. Как мне собрать / получить плагин pyqt5 для Qt Designer на Mac? - PullRequest
0 голосов
/ 08 января 2019

Я хочу иметь возможность создавать свои собственные виджеты в Qt Designer, используя плагин pyqt5 на моем Mac!

В моей системе Windows это легко. У меня есть / install pyqt5-tools, он содержит pyqt5.dll, и я копирую его в каталог плагинов Qt Designers (все эти пакеты были установлены через winPython).

  • Я установил PYQTDESIGNERPATH =.
  • В моем текущем каталоге у меня есть ledplugin.py и ledwidget.py
  • Я запускаю Qt Designer и у меня есть пользовательский виджет для перетаскивания

(этот урок взят из https://www.ics.com/blog/integrating-python-based-custom-widget-qt-designer)

На моем Mac я не могу понять, что такое эквивалент .dylib файла pyqt5.dll? Что это? Где я могу получить это? Как мне его построить?

Я пытаюсь: brew install Qt Creator, у которого нет плагина pyqt. Я пытаюсь: brew установить pyqt5, который создает: libpyqt5qmlplugin.dylib. Я копирую это в каталог плагинов Qt Designer, и плагин загружается, но он, похоже, ничего не делает с моими файлами плагинов / виджетов .py

Как мне заставить это работать на Mac? Какой именно плагин .dylib я ищу? Я не могу найти ничего, что гуглится вокруг.

Спасибо за любую помощь

1 Ответ

0 голосов
/ 13 января 2019

Как пояснил мой комментарий: плагин Qt Designer может быть собран через ссылку (SIP / PyQt5 через RiverBank и Qt src через Qt).

  • Убедитесь, что ваши версии Qt совпадают, хотя в документации Qt сказано, что плагины более низких версий должны работать с Designers на более высоких версиях, но я уверен, что есть предел.
  • Сборка внутри python venv, как и предлагалось.
  • Для сборки вам понадобится xtool dev pkg.
  • Все построено очень легко для меня.
  • Это поместит ваш плагин pyqt5.dylib прямо в вашу папку Qt / clang_64 / plugins / designer (он также будет встроен в папку pyqt5 make)

В этот момент я ожидал, что все будет работать. Плагин показывает, что он прекрасно загружается в Designer.

Некоторые дополнительные заметки:

  • запуск из командной строки может помочь с отладкой: Qt / clang_64 / bin / Designer.app> show package> / MacOS / Designer (перетащите его в терминал для выполнения из командной строки)
  • установка переменной env (>> export QT_DEBUG_PLUGINS = 1) выдаст отладочную информацию и покажет множество вещей, включая то, что pyqt5.dylib прекрасно загружается
  • Плагины виджетов - это два файла: widget.py и файл widgetplugin.py, который предоставляет виджет дизайнеру. Этот файл плагина ДОЛЖЕН заканчиваться на «plugin.py»
  • Файлы widgetplugin.py могут находиться в нескольких местах:
    • in / [Дизайнерское приложение] / плагины / дизайнер / python /
    • в ~ / user dir / .designer / plugins / python /
    • в выбранном вами каталоге, используя env var PYQTDESIGNERPATH

Однако, в этот момент в Designer все еще ничего не показывалось, и у меня не было ошибок, чтобы пройти мимо. Так как я только что построил pyqt5.dylib, я решил, что просто вставлю в него кучу операторов print, заново сделаю его и отладлю, чтобы выяснить, почему плагин pyqt5 загружается нормально, но мои пользовательские виджеты нигде не были найдены .. .

  • Первой проблемой была проблема с загрузкой среды Python:
    • для этой проблемы я просто скопировал мой (я использую brew) /usr/local/Cellar/python/3.7.2/Frameworks/Python.framework в Qt / clang_64 / lib (я уверен, что есть правильный PATH / PYTHONPATH вы можете установить для этого, я выясню это позже)
  • после этого пришел отсутствующий модуль PyQt5.sip
    • для этого я установил (pip install) pyqt5-sip и вставил в свою PYTHONPATH

После этого все наконец заработало, и я смог увидеть мои собственные плагины внутри Qt Designer.

...