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

时间:2015-01-21 13:20:06

标签: python plugins pyqt designer qt-designer

我写了很多自定义小部件插件,可以在Qt Designer和我的管道中使用它们。

这在我的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 本身,但它仍然无法正常工作。

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

  • 插件文件到" C:\ designer_plugins"
  • 小部件文件到" C:\ designer_widgets"

只是让代码尽可能简单,找出问题所在。

所以,这是我的测试 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())

我认为我的设计器对象没有找到正确的路径,因此我实施了以下内容来检查它的环境:

# 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 Plugins在设计器中仔细检查了它。

任何想法我做错了什么?或者这通常不适用于Windows 7系统?

1 个答案:

答案 0 :(得分:0)

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