From b7867e2be14b80d01209d344c8fd81c5cba4974a Mon Sep 17 00:00:00 2001 From: Oliver Oxtoby Date: Fri, 20 Aug 2021 13:22:13 +0200 Subject: [PATCH] Prevent matplotlib selecting the PyQt API instead of PySide2 --- src/Mod/Plot/Plot.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Mod/Plot/Plot.py b/src/Mod/Plot/Plot.py index 6e9b400329..ace9f094d9 100644 --- a/src/Mod/Plot/Plot.py +++ b/src/Mod/Plot/Plot.py @@ -26,11 +26,20 @@ import FreeCAD import PySide from PySide import QtCore, QtGui from distutils.version import LooseVersion as V +import sys try: import matplotlib matplotlib.use('Qt5Agg') - import matplotlib.pyplot as plt + + # Force matplotlib to use PySide backend by temporarily unloading PyQt + if 'PyQt5.QtCore' in sys.modules: + del sys.modules['PyQt5.QtCore'] + import matplotlib.pyplot as plt + import PyQt5.QtCore + else: + import matplotlib.pyplot as plt + from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar