我需要在pyqt界面窗口中显示一些matplotlib.pyplot 3d图形。尝试在matplotlib_backend_qtquick库的帮助下实现something like this。
下面是我的main.py
:
import os
import sys
from PyQt5 import QtQml, QtCore
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication
from PyQt5.QtQml import QQmlApplicationEngine
from matplotlib_backend_qtquick.backend_qtquickagg import FigureCanvasQtQuickAgg
os.environ['QT_QUICK_CONTROLS_STYLE'] = "Material"
QtQml.qmlRegisterType(FigureCanvasQtQuickAgg, "Backend", 1, 0, "FigureCanvas")
app = QApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.load(QUrl.fromLocalFile('/home/vovi/PycharmProjects/pyqt5-qtquick2-example-master/pyqt5-qtquick2-example-master/pyqt5_qtquick2_example/qml/main.qml'))
if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec_())
当我试图运行我的main.py
时,我得到了一个回溯:
Traceback (most recent call last):
File "/home/vovi/PycharmProjects/pyqt5-qtquick2-example-master/pyqt5-qtquick2-example-master/main.py", line 10, in <module>
from matplotlib_backend_qtquick.backend_qtquickagg import FigureCanvasQtQuickAgg
File "/home/vovi/PycharmProjects/pyqt5-qtquick2-example-master/pyqt5-qtquick2-example-master/venv/lib/python3.11/site-packages/matplotlib_backend_qtquick/backend_qtquickagg.py", line 7, in <module>
from .backend_qtquick import (
File "/home/vovi/PycharmProjects/pyqt5-qtquick2-example-master/pyqt5-qtquick2-example-master/venv/lib/python3.11/site-packages/matplotlib_backend_qtquick/backend_qtquick.py", line 11, in <module>
from matplotlib.backends.backend_qt5 import (
ImportError: cannot import name 'MODIFIER_KEYS' from 'matplotlib.backends.backend_qt5' (/home/vovi/PycharmProjects/pyqt5-qtquick2-example-master/pyqt5-qtquick2-example-master/venv/lib/python3.11/site-packages/matplotlib/backends/backend_qt5.py)
Process finished with exit code 1
我做错了什么?
1条答案
按热度按时间1dkrff031#
matplotlib_backend_qtquick
库不再维护。它现在被破坏了,因为至少它使用了旧Matplotlib版本的内部符号-MODIFIER_KEYS
。README
表示它与Matplotlib 3.2.1兼容。因此,要么使用Matplotlib 3.2.1版本,要么自己移植库。