我想使用python(3.7和pyqt5)为Qt Designer创建一个自定义小部件插件。一切正常,但不会在Qt Designer中显示。
到目前为止,这是我经过反复尝试和其他类似问题(Qt Designer: could not find custom PyQt widget plugins和Custom QWidgets. How do I build/get the pyqt5 plugin for Qt Designer on Mac?)的帮助下所做的事情
我从Qt网站安装了Qt Designer(Creator)5.13。
我从源代码而非pip安装了SIP(4.9.18)和PyQt5(5.13.0),因为有必要获取必要的libpyqt5.dylib文件(对于Mac,没有pyqt5-tools)。我将此文件放在/Users/[user]/Qt/5.13.0/clang_64/plugins/designer目录
我只想在制作自己的插件之前正确设置设置。因此,我从https://github.com/baoboa/pyqt5/tree/master/examples/designer/plugins下载了analogclock.py和analogclockplugin.py,并修改了plugins.py文件,如下所示:
from PyQt5.QtCore import QLibraryInfo, QProcess, QProcessEnvironment
# Tell Qt Designer where it can find the directory containing the plugins and
# Python where it can find the widgets.
env = QProcessEnvironment.systemEnvironment()
env.insert('PYQTDESIGNERPATH', '[path to the plugin.py files]/designer_plugins')
env.insert('PYTHONPATH', '[path to the widgets]/designer_widgets')
# Start Designer.
designer = QProcess()
designer.setProcessEnvironment(env)
designer_bin = QLibraryInfo.location(QLibraryInfo.BinariesPath)
designer_bin = '/Users/[user]/Qt/5.13.0/clang_64/bin/Designer.app/Contents/MacOS/Designer'
designer.start(designer_bin)
designer.waitForFinished(-1)
我运行了plugins.py。 Qt Designer正确打开,并且当我检查了Designer-> About Plugins时,我在Loaded Plugins中看到libpyqt5.dylib。但是,PyAnalogClock小部件不在其中,插件小部件不在左侧小部件框中。
我试图通过这样在终端上设置环境变量进行调试:
[user]$ export QT_DEBUG_PLUGINS=1
[user]$ export PYQTDESIGNERPATH='[path to the widgets]/designer_widgets'
[user]$ export PYTHONPATH='[path to the widgets]/designer_widgets'
[user]$ /Users/[user]/Qt/5.13.0/clang_64/bin/Designer.app/Contents/MacOS/Designer
输出的相关部分是这样的:
Found metadata in lib /Users/[user]/Qt/5.13.0/clang_64/plugins/designer/libpyqt5.dylib, metadata=
{
"IID": "org.qt-project.Qt.QDesignerCustomWidgetCollectionInterface",
"archreq": 0,
"className": "PyCustomWidgets",
"debug": false,
"version": 331008
}
loaded library "/Users/[user]/Qt/5.13.0/clang_64/plugins/designer/libpyqt5.dylib"
并一直到最后
loaded library "Python.framework/Versions/3.7/Python"
ModuleNotFoundError: No module named 'PyQt5'
ModuleNotFoundError: No module named 'PyQt5'
无论如何,这就是我目前的状态。我不明白为什么Qt Designer无法找到PyQt5模块,或者还有什么我可以尝试使其工作的。
答案 0 :(得分:0)
这里是?♂️妈妈 因此,我在PyQt参考指南中发现了这一点,而我却以某种方式忽略了它
好。做过某事。运行演示。它工作正常。将整个插件目录复制到其他位置。还可以所以我一定做了一些时髦的命名文件夹之类的事情。无论如何,现在我将致力于制作自己的插件。由于愚蠢而沮丧的日子。但是很高兴。