这是我在 Linux 中将 QChartView 和 QWebEngineView 插件添加到 pyqt5_tools 的过程。
生成插件:
就我而言,我使用以下程序:
git clone -b 5.15.0 https://github.com/qt/qtcharts.git
cd qtcharts/plugins/designer
qmake
make
git clone -b 5.15.0 https://github.com/qt/qtwebengine.git
cd qtwebengine/src/plugins/qwebengineview
qmake
make
在文件夹“qtcharts/plugins/designer”和“qtwebengine/plugins/designer”中生成了.so文件(在windows中应该生成.dll文件)。
复制
由于需要使用 QChartView 和 QWebEngineView,因此假设您已安装 pyqchart 和 pyqtwebengine(如果您没有安装,则运行:python -m pip install PyQtChart PyQtWebEngine)。
在控制台执行pyqt5_tools的pyqt5designer时,得到如下日志:
PYQTDESIGNERPATH: :
PYTHONPATH: /home/qt_user/venv/bin:/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/home/qt_user/venv/lib/python3.8/site-packages::
PATH: /home/qt_user/venv/bin:/usr/lib/python38.zip:/usr/lib/python3.8:/usr/lib/python3.8/lib-dynload:/home/qt_user/venv/lib/python3.8/site-packages:/home/qt_user/venv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:
QT_DEBUG_PLUGINS is not set
QT_PLUGIN_PATH: :/home/qt_user/venv/lib/python3.8/site-packages/pyqt5_tools/Qt/plugins
PYQT5TOOLS_TEST_PATH is not set
LD_LIBRARY_PATH: ::/usr/lib
这部分最重要的是QT_PLUGIN_PATH,为了概括这个过程,我将把PYQT5_TOOLS_QT称为/home/qt_user/venv/lib/python3.8/site-packages/pyqt5_tools/Qt。
您还必须使用以下命令从 PyQt5 获取 QT_PLUGIN_PATH:
python -c "from PyQt5.QtCore import QLibraryInfo; print('QT_PLUGIN_PATH=', QLibraryInfo.location(QLibraryInfo.PluginsPath))"
输出:
QT_PLUGIN_PATH= /home/qt_user/venv/lib/python3.8/site-packages/PyQt5/Qt/plugins
所以我会打电话给 PYQT5_QT 到/home/qt_user/venv/lib/python3.8/site-packages/PyQt5/Qt。
因此,您应该使用该信息进行复制:
PYQT5_QT/translations ---> PYQT5_TOOLS_QT/translations
PYQT5_QT/lib/libQt5WebEngineWidgets.so.5 ---> PYQT5_TOOLS_QT/lib
PYQT5_QT/lib/libQt5WebEngineCore.so.5 ---> PYQT5_TOOLS_QT/lib
PYQT5_QT/lib/libQt5Positioning.so.5 ---> PYQT5_TOOLS_QT/lib
PYQT5_QT/lib/libQt5WebChannel.so.5 ---> PYQT5_TOOLS_QT/lib
PYQT5_QT/lib/libQt5QuickWidgets.so.5 ---> PYQT5_TOOLS_QT/lib
PYQT5_QT/libexec ---> PYQT5_TOOLS_QT/libexec
PYQT5_QT/resources ---> PYQT5_TOOLS_QT/resources
还有插件:
qtcharts/plugins/designer/libqtchartsdesigner.so ---> PYQT5_TOOLS_QT/plugins/designer
qtwebengine/plugins/designer/libqwebengineview.so ---> PYQT5_TOOLS_QT/plugins/designer
如果插件对话框通过以下方式打开:帮助 --> 关于插件