Пользовательские QWidgets. Как мне собрать / получить плагин pyqt5 для Qt Designer на Mac?
Я хочу иметь возможность создавать свои собственные виджеты в 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 ответ
Как пояснил мой комментарий: плагин Qt Designer может быть собран через ссылку (SIP/PyQt5 через RiverBank и Qt src через Qt).
- Убедитесь, что ваши версии Qt совпадают, хотя в документации по Qt сказано, что плагины более ранних версий должны работать с дизайнерами более высоких версий, но я уверен, что есть предел.
- Сборка внутри 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 могут находиться в нескольких местах:
- в /[Designer App]/ плагины / дизайнер / 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.