|
| 1 | +Changes to Qt backend class MRO |
| 2 | +``````````````````````````````` |
| 3 | + |
| 4 | +To support both Agg and cairo rendering for Qt backends all of the |
| 5 | +non-Agg specific code previously in |
| 6 | +:class:`.backend_qt5agg.FigureCanvasQTAggBase` has been moved to |
| 7 | +:class:`.backend_qt5.FigureCanvasQT` so it can be shared with the cairo |
| 8 | +implementation. The :meth:`.FigureCanvasQTAggBase.paintEvent`, |
| 9 | +:meth:`.FigureCanvasQTAggBase.blit`, and |
| 10 | +:meth:`.FigureCanvasQTAggBase.print_figure` methods have moved to |
| 11 | +:meth:`.FigureCanvasQTAgg.paintEvent`, :meth:`.FigureCanvasQTAgg.blit`, and |
| 12 | +:meth:`.FigureCanvasQTAgg.print_figure`. The first two methods assume that |
| 13 | +the instance is also a :class:`QWidget` so to use |
| 14 | +:class:`FigureCanvasQTAggBase` it was required to multiple inherit |
| 15 | +from a :class:`QWidget` sub-class. |
| 16 | + |
| 17 | +Having moved all of it's methods either up or down the class hierarchy |
| 18 | +:class:`FigureCanvasQTAggBase` has been deprecated. To do this with |
| 19 | +out warning and to preserve as much API as possible, |
| 20 | +:class:`.backend_qt5.FigureCanvasQTAggBase` now inherits from |
| 21 | +:class:`.backend_qt5.FigureCanvasQTAgg`. |
| 22 | + |
| 23 | +The MRO for :class:`FigureCanvasQTAgg` and |
| 24 | +:class:`FigureCanvasQTAggBase` used to be :: |
| 25 | + |
| 26 | + |
| 27 | + [matplotlib.backends.backend_qt5agg.FigureCanvasQTAgg, |
| 28 | + matplotlib.backends.backend_qt5agg.FigureCanvasQTAggBase, |
| 29 | + matplotlib.backends.backend_agg.FigureCanvasAgg, |
| 30 | + matplotlib.backends.backend_qt5.FigureCanvasQT, |
| 31 | + PyQt5.QtWidgets.QWidget, |
| 32 | + PyQt5.QtCore.QObject, |
| 33 | + sip.wrapper, |
| 34 | + PyQt5.QtGui.QPaintDevice, |
| 35 | + sip.simplewrapper, |
| 36 | + matplotlib.backend_bases.FigureCanvasBase, |
| 37 | + object] |
| 38 | + |
| 39 | +and :: |
| 40 | + |
| 41 | + |
| 42 | + [matplotlib.backends.backend_qt5agg.FigureCanvasQTAggBase, |
| 43 | + matplotlib.backends.backend_agg.FigureCanvasAgg, |
| 44 | + matplotlib.backend_bases.FigureCanvasBase, |
| 45 | + object] |
| 46 | + |
| 47 | + |
| 48 | +respectively. They are now :: |
| 49 | + |
| 50 | + [matplotlib.backends.backend_qt5agg.FigureCanvasQTAgg, |
| 51 | + matplotlib.backends.backend_agg.FigureCanvasAgg, |
| 52 | + matplotlib.backends.backend_qt5.FigureCanvasQT, |
| 53 | + PyQt5.QtWidgets.QWidget, |
| 54 | + PyQt5.QtCore.QObject, |
| 55 | + sip.wrapper, |
| 56 | + PyQt5.QtGui.QPaintDevice, |
| 57 | + sip.simplewrapper, |
| 58 | + matplotlib.backend_bases.FigureCanvasBase, |
| 59 | + object] |
| 60 | + |
| 61 | +and :: |
| 62 | + |
| 63 | + [matplotlib.backends.backend_qt5agg.FigureCanvasQTAggBase, |
| 64 | + matplotlib.backends.backend_qt5agg.FigureCanvasQTAgg, |
| 65 | + matplotlib.backends.backend_agg.FigureCanvasAgg, |
| 66 | + matplotlib.backends.backend_qt5.FigureCanvasQT, |
| 67 | + PyQt5.QtWidgets.QWidget, |
| 68 | + PyQt5.QtCore.QObject, |
| 69 | + sip.wrapper, |
| 70 | + PyQt5.QtGui.QPaintDevice, |
| 71 | + sip.simplewrapper, |
| 72 | + matplotlib.backend_bases.FigureCanvasBase, |
| 73 | + object] |
0 commit comments