自定义QWidget。如何在Mac上为Qt Designer构建/获取pyqt5插件?

时间:2019-01-08 18:16:06

标签: macos pyqt5 qt-designer

我希望能够使用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安装Qt Creator,它没有pyqt插件。我尝试:brew install pyqt5,创建:libpyqt5qmlplugin.dylib。我将其复制到Qt Designer插件目录中,并加载了插件,但是它对我的.py插件/小工具文件似乎没有任何作用。

如何在Mac上运行该软件?我要寻找的实际.dylib插件是什么?我什么都找不到。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

正如我的评论所解释:可以通过参考链接(通过RiverBank的SIP / PyQt5和通过Qt的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(将其拖到终端以从命令行执行)
  • 设置环境变量(>> export QT_DEBUG_PLUGINS = 1)将提供调试信息并显示很多内容,包括pyqt5.dylib可以很好地加载
  • 小工具插件是两个文件:widget.py和widgetplugin.py文件,该文件向设计人员公开了小部件。此插件文件必须以“ plugin.py”结尾
  • widgetplugin.py文件可以位于许多地方:
    • 在/ [Designer App] / plugins / designer / python /
    • 在〜/ user dir / .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中看到我的自定义插件。