Qt Designer:找不到自定义 PyQt 小部件插件

Qt Designer: could not find custom PyQt widget plugins

我编写了很多自定义小部件插件,以便在 Qt 设计器和我的管道中使用它们。

这在我的 Mac(Mavericks、PyQt4、Python 2.7)上运行良好,本周我也想在我的 Windows 环境中实现这些插件。但它没有用。插件未出现在左侧 Qt Designer 的 Widget Box 中(Windows 7,PyQt4,Python 2.7)。

经过多次尝试,我下载了 PyQt4 示例文件并按照以下说明进行操作:PyQt Reference Guide 以及说明 来自示例启动器文件 examples/designer/plugins/plugins.py 本身,但它仍然无法正常工作。

所以我复制了以下示例文件:

只是为了使代码尽可能简单,以便找出问题所在。

所以,这是我的测试 plugins.py 文件:

#!/usr/bin/env python
import sys
import os

from PyQt4 import QtCore, QtGui, uic

env = os.environ.copy()

env['PYTHONPATH']       = r"C:\designer_widgets" #("%s"%os.pathsep).join(sys.path)
env['PYQTDESIGNERPATH'] = r"C:\designer_plugins"

qenv = ['%s="%s"' % (name, value) for name, value in env.items()]

# Start Designer.
designer = QtCore.QProcess()
designer.setEnvironment(qenv)

designer_bin = r"C:\Python27x64\Lib\site-packages\PyQt4\designer.exe"

designer.start(designer_bin)
designer.waitForFinished(-1)

sys.exit(designer.exitCode())

我认为我的 designer 对象没有得到正确的路径,所以我实施了以下检查它的环境:

# Check if paths are right
print "\n # Designer Env:"
for pypath in designer.environment():
    if "PYTHONPATH" in pypath:
        print " #  ",pypath
    if "PYQTDESIGNERPATH" in pypath:
        print " #  ",pypath

控制台输出:

 # Designer Env:
 #   PYQTDESIGNERPATH="C:\designer_plug"
 #   PYTHONPATH="C:\designer_widgets"

路径是正确的。就像我说的,在我的 mac 上它运行完美。 我也在尝试使用不同的 Qt Designer 安装。但是(PyQt4 和 PySide)设计师都没有展示任何示例插件。两个 Qt Designer 都找不到示例插件。我在设计器中使用 Help/About 插件仔细检查了它。

知道我做错了什么吗?或者这通常不适用于 Windows 7 系统?

全部修复。我重建了PyQt4,所以我想我以前可能在Qt的源代码中犯了一个错误。