diff --git a/doc/api/next_api_changes/deprecations.rst b/doc/api/next_api_changes/deprecations.rst index 83338d644d48..c5e2db4116ea 100644 --- a/doc/api/next_api_changes/deprecations.rst +++ b/doc/api/next_api_changes/deprecations.rst @@ -391,3 +391,7 @@ attribute are deprecated. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This method is deprecated. Use the ``GridSpec.nrows``, ``GridSpec.ncols``, ``SubplotSpec.rowspan``, and ``SubplotSpec.colspan`` properties instead. + +Qt4-based backends +~~~~~~~~~~~~~~~~~~ +The qt4agg and qt4cairo backends are deprecated. diff --git a/lib/matplotlib/backends/backend_qt4.py b/lib/matplotlib/backends/backend_qt4.py index b6e38a7a9718..a028a3a32cc9 100644 --- a/lib/matplotlib/backends/backend_qt4.py +++ b/lib/matplotlib/backends/backend_qt4.py @@ -1,9 +1,13 @@ +from .. import cbook from .backend_qt5 import ( backend_version, SPECIAL_KEYS, SUPER, ALT, CTRL, SHIFT, MODIFIER_KEYS, cursord, _create_qApp, _BackendQT5, TimerQT, MainWindow, FigureCanvasQT, FigureManagerQT, NavigationToolbar2QT, SubplotToolQt, exception_handler) +cbook.warn_deprecated("3.3", name=__name__, obj_type="backend") + + @_BackendQT5.export class _BackendQT4(_BackendQT5): class FigureCanvas(FigureCanvasQT): diff --git a/lib/matplotlib/backends/backend_qt4agg.py b/lib/matplotlib/backends/backend_qt4agg.py index 03e7ac920566..0d7048ff3eaf 100644 --- a/lib/matplotlib/backends/backend_qt4agg.py +++ b/lib/matplotlib/backends/backend_qt4agg.py @@ -2,10 +2,14 @@ Render to qt from agg """ +from .. import cbook from .backend_qt5agg import ( _BackendQT5Agg, FigureCanvasQTAgg, FigureManagerQT, NavigationToolbar2QT) +cbook.warn_deprecated("3.3", name=__name__, obj_type="backend") + + @_BackendQT5Agg.export class _BackendQT4Agg(_BackendQT5Agg): class FigureCanvas(FigureCanvasQTAgg): diff --git a/lib/matplotlib/backends/backend_qt4cairo.py b/lib/matplotlib/backends/backend_qt4cairo.py index f785aa0bd40b..5305c07081c3 100644 --- a/lib/matplotlib/backends/backend_qt4cairo.py +++ b/lib/matplotlib/backends/backend_qt4cairo.py @@ -1,6 +1,10 @@ +from .. import cbook from .backend_qt5cairo import _BackendQT5Cairo, FigureCanvasQTCairo +cbook.warn_deprecated("3.3", name=__name__, obj_type="backend") + + @_BackendQT5Cairo.export class _BackendQT4Cairo(_BackendQT5Cairo): class FigureCanvas(FigureCanvasQTCairo): diff --git a/lib/matplotlib/backends/qt_compat.py b/lib/matplotlib/backends/qt_compat.py index ca0daa2a0433..eb494dd67ca2 100644 --- a/lib/matplotlib/backends/qt_compat.py +++ b/lib/matplotlib/backends/qt_compat.py @@ -9,6 +9,8 @@ it; i.e. if the Qt5Agg backend is requested but QT_API is set to "pyqt4", then actually use Qt5 with PyQt5 or PySide2 (whichever can be imported); - otherwise, use whatever the rcParams indicate. + +Support for PyQt4 is deprecated. """ from distutils.version import LooseVersion @@ -175,3 +177,6 @@ def is_pyqt5(): ETS = dict(pyqt=(QT_API_PYQTv2, 4), pyside=(QT_API_PYSIDE, 4), pyqt5=(QT_API_PYQT5, 5), pyside2=(QT_API_PYSIDE2, 5)) QT_RC_MAJOR_VERSION = 5 if is_pyqt5() else 4 + +if not is_pyqt5(): + mpl.cbook.warn_deprecated("3.3", name="support for Qt4")