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 本身,但它仍然无法正常工作。
所以我复制了以下示例文件:
- 插件文件到 "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())
我认为我的 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的源代码中犯了一个错误。
我编写了很多自定义小部件插件,以便在 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 本身,但它仍然无法正常工作。
所以我复制了以下示例文件:
- 插件文件到 "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())
我认为我的 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的源代码中犯了一个错误。