【问题标题】:Custom QWidgets. How do I build/get the pyqt5 plugin for Qt Designer on Mac?自定义 QWidget。如何在 Mac 上为 Qt Designer 构建/获取 pyqt5 插件?
【发布时间】:2019-06-03 11:32:10
【问题描述】:

我希望能够在我的 Mac 上使用 pyqt5 插件在 Qt Designer 中创建我自己的自定义小部件!

在我的 Windows 系统上,这很容易。我有/安装 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 上,我无法弄清楚 pyqt5.dll 的等效 .dylib 是什么?它是什么?我在哪里得到它?如何构建它?

我尝试:brew install Qt Creator,它没有 pyqt 插件。我尝试:brew install pyqt5,创建:libpyqt5qmlplugin.dylib。我将它复制到 Qt Designer 插件目录并加载插件,但它似乎对我的 .py 插件/小部件文件没有任何作用。

如何让它在 Mac 上运行?我正在寻找的实际 .dylib 插件是什么?我在谷歌上找不到任何东西。

感谢您的帮助

【问题讨论】:

  • 我应该更好地遵循我自己的链接的指示。而不是简单地安装预构建的包并查看......我需要简单地构建 sip/pyqt5。所以要回答我的问题,我需要构建的是 pyqt5.dylib。 Designer 能识别这个插件,但我还是不知道如何让那个插件加载我自己的自定义 pyqt5 小部件插件?

标签: macos pyqt5 qt-designer


【解决方案1】:

正如我的评论所解释的:Qt 设计器插件可以通过参考链接(通过 RiverBank 的 SIP/PyQt5 和通过 Qt 的 Qt src)构建。

  • 确保您的 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(将其拖到终端以从命令行执行)
  • 设置环境变量 (>>export QT_DEBUG_PLUGINS=1) 将提供调试信息并显示很多内容,包括 pyqt5.dylib 加载正常
  • widget 插件有两个文件:widget.py 和widgetplugin.py 文件,它将widget 暴露给设计者。此插件文件必须以“plugin.py”结尾
  • widgetplugin.py 文件可以驻留在多个位置:
    • 在/[Designer App]/plugins/designer/python/中
    • 在 ~/user 目录/.designer/plugins/python/ 中
    • 在您使用 env var PYQTDESIGNERPATH 选择的目录中

但是,此时 Designer 中仍然没有显示任何内容,并且我没有错误可循。由于我刚刚构建了 pyqt5.dylib,所以我想我只需在其中放入一堆打印语句,重新制作并调试以找出为什么 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 中看到我的自定义插件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-02
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 2011-10-13
    相关资源
    最近更新 更多