Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 679db1f

Browse files
committed
Rewrite and greatly simplify qt_compat.py.
The selection logic is now described in the module's docstring. The only changes is that the QT_ENV_MAJOR_VERSION global, which would sometimes be defined (depending on the state of the import cache, the QT_API environment variable, and the requested backend) is never defined anymore.
1 parent 74b6913 commit 679db1f

File tree

8 files changed

+153
-323
lines changed

8 files changed

+153
-323
lines changed

INSTALL.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,9 @@ interface toolkits. See :ref:`what-is-a-backend` for more details on the
156156
optional Matplotlib backends and the capabilities they provide.
157157

158158
* :term:`tk` (>= 8.3, != 8.6.0 or 8.6.1): for the TkAgg backend;
159-
* `PyQt4 <https://pypi.python.org/pypi/PyQt4>`_ (>= 4.4) or
160-
`PySide <https://pypi.python.org/pypi/PySide>`_: for the Qt4Agg backend;
159+
* `PyQt4 <https://pypi.python.org/pypi/PyQt4>`_ (>= 4.6) or
160+
`PySide <https://pypi.python.org/pypi/PySide>`_ (>= 1.0.3): for the Qt4Agg
161+
backend;
161162
* `PyQt5 <https://pypi.python.org/pypi/PyQt5>`_: for the Qt5Agg backend;
162163
* :term:`pygtk` (>= 2.4): for the GTK and the GTKAgg backend;
163164
* :term:`wxpython` (>= 2.9 or later): for the WX or WXAgg backend;

doc/api/backend_qt4agg_api.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
:mod:`matplotlib.backends.backend_qt4agg`
33
=========================================
44

5-
.. automodule:: matplotlib.backends.backend_qt4agg
6-
:members:
7-
:undoc-members:
8-
:show-inheritance:
5+
**NOTE** Not included, to avoid adding a dependency to building the docs.
6+
7+
.. .. automodule:: matplotlib.backends.backend_qt4agg
8+
.. :members:
9+
.. :undoc-members:
10+
.. :show-inheritance:

doc/api/backend_qt4cairo_api.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
:mod:`matplotlib.backends.backend_qt4cairo`
33
===========================================
44

5-
.. automodule:: matplotlib.backends.backend_qt4cairo
6-
:members:
7-
:undoc-members:
8-
:show-inheritance:
5+
**NOTE** Not included, to avoid adding a dependency to building the docs.
6+
7+
.. .. automodule:: matplotlib.backends.backend_qt4cairo
8+
.. :members:
9+
.. :undoc-members:
10+
.. :show-inheritance:

doc/api/backend_qt5agg_api.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
:mod:`matplotlib.backends.backend_qt5agg`
33
=========================================
44

5-
.. automodule:: matplotlib.backends.backend_qt5agg
6-
:members:
7-
:undoc-members:
8-
:show-inheritance:
5+
**NOTE** Not included, to avoid adding a dependency to building the docs.
6+
7+
.. .. automodule:: matplotlib.backends.backend_qt5agg
8+
.. :members:
9+
.. :undoc-members:
10+
.. :show-inheritance:

doc/api/backend_qt5cairo_api.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
:mod:`matplotlib.backends.backend_qt5cairo`
33
===========================================
44

5-
.. automodule:: matplotlib.backends.backend_qt5cairo
6-
:members:
7-
:undoc-members:
8-
:show-inheritance:
5+
**NOTE** Not included, to avoid adding a dependency to building the docs.
6+
7+
.. .. automodule:: matplotlib.backends.backend_qt5cairo
8+
.. :members:
9+
.. :undoc-members:
10+
.. :show-inheritance:

doc/sphinxext/mock_gui_toolkits.py

Lines changed: 0 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -10,108 +10,6 @@ class MyCairoCffi(MagicMock):
1010
version_info = (1, 4, 0)
1111

1212

13-
class MyPyQt4(MagicMock):
14-
class QtGui(object):
15-
# PyQt4.QtGui public classes.
16-
# Generated with
17-
# textwrap.fill([name for name in dir(PyQt4.QtGui)
18-
# if isinstance(getattr(PyQt4.QtGui, name), type)])
19-
_QtGui_public_classes = """\
20-
Display QAbstractButton QAbstractGraphicsShapeItem
21-
QAbstractItemDelegate QAbstractItemView QAbstractPrintDialog
22-
QAbstractProxyModel QAbstractScrollArea QAbstractSlider
23-
QAbstractSpinBox QAbstractTextDocumentLayout QAction QActionEvent
24-
QActionGroup QApplication QBitmap QBoxLayout QBrush QButtonGroup
25-
QCalendarWidget QCheckBox QClipboard QCloseEvent QColor QColorDialog
26-
QColumnView QComboBox QCommandLinkButton QCommonStyle QCompleter
27-
QConicalGradient QContextMenuEvent QCursor QDataWidgetMapper QDateEdit
28-
QDateTimeEdit QDesktopServices QDesktopWidget QDial QDialog
29-
QDialogButtonBox QDirModel QDockWidget QDoubleSpinBox QDoubleValidator
30-
QDrag QDragEnterEvent QDragLeaveEvent QDragMoveEvent QDropEvent
31-
QErrorMessage QFileDialog QFileIconProvider QFileOpenEvent
32-
QFileSystemModel QFocusEvent QFocusFrame QFont QFontComboBox
33-
QFontDatabase QFontDialog QFontInfo QFontMetrics QFontMetricsF
34-
QFormLayout QFrame QGesture QGestureEvent QGestureRecognizer QGlyphRun
35-
QGradient QGraphicsAnchor QGraphicsAnchorLayout QGraphicsBlurEffect
36-
QGraphicsColorizeEffect QGraphicsDropShadowEffect QGraphicsEffect
37-
QGraphicsEllipseItem QGraphicsGridLayout QGraphicsItem
38-
QGraphicsItemAnimation QGraphicsItemGroup QGraphicsLayout
39-
QGraphicsLayoutItem QGraphicsLineItem QGraphicsLinearLayout
40-
QGraphicsObject QGraphicsOpacityEffect QGraphicsPathItem
41-
QGraphicsPixmapItem QGraphicsPolygonItem QGraphicsProxyWidget
42-
QGraphicsRectItem QGraphicsRotation QGraphicsScale QGraphicsScene
43-
QGraphicsSceneContextMenuEvent QGraphicsSceneDragDropEvent
44-
QGraphicsSceneEvent QGraphicsSceneHelpEvent QGraphicsSceneHoverEvent
45-
QGraphicsSceneMouseEvent QGraphicsSceneMoveEvent
46-
QGraphicsSceneResizeEvent QGraphicsSceneWheelEvent
47-
QGraphicsSimpleTextItem QGraphicsTextItem QGraphicsTransform
48-
QGraphicsView QGraphicsWidget QGridLayout QGroupBox QHBoxLayout
49-
QHeaderView QHelpEvent QHideEvent QHoverEvent QIcon QIconDragEvent
50-
QIconEngine QIconEngineV2 QIdentityProxyModel QImage QImageIOHandler
51-
QImageReader QImageWriter QInputContext QInputContextFactory
52-
QInputDialog QInputEvent QInputMethodEvent QIntValidator QItemDelegate
53-
QItemEditorCreatorBase QItemEditorFactory QItemSelection
54-
QItemSelectionModel QItemSelectionRange QKeyEvent QKeyEventTransition
55-
QKeySequence QLCDNumber QLabel QLayout QLayoutItem QLineEdit
56-
QLinearGradient QListView QListWidget QListWidgetItem QMainWindow
57-
QMatrix QMatrix2x2 QMatrix2x3 QMatrix2x4 QMatrix3x2 QMatrix3x3
58-
QMatrix3x4 QMatrix4x2 QMatrix4x3 QMatrix4x4 QMdiArea QMdiSubWindow
59-
QMenu QMenuBar QMessageBox QMimeSource QMouseEvent
60-
QMouseEventTransition QMoveEvent QMovie QPageSetupDialog QPaintDevice
61-
QPaintEngine QPaintEngineState QPaintEvent QPainter QPainterPath
62-
QPainterPathStroker QPalette QPanGesture QPen QPicture QPictureIO
63-
QPinchGesture QPixmap QPixmapCache QPlainTextDocumentLayout
64-
QPlainTextEdit QPolygon QPolygonF QPrintDialog QPrintEngine
65-
QPrintPreviewDialog QPrintPreviewWidget QPrinter QPrinterInfo
66-
QProgressBar QProgressDialog QProxyModel QPushButton QPyTextObject
67-
QQuaternion QRadialGradient QRadioButton QRawFont QRegExpValidator
68-
QRegion QResizeEvent QRubberBand QScrollArea QScrollBar
69-
QSessionManager QShortcut QShortcutEvent QShowEvent QSizeGrip
70-
QSizePolicy QSlider QSortFilterProxyModel QSound QSpacerItem QSpinBox
71-
QSplashScreen QSplitter QSplitterHandle QStackedLayout QStackedWidget
72-
QStandardItem QStandardItemModel QStaticText QStatusBar
73-
QStatusTipEvent QStringListModel QStyle QStyleFactory QStyleHintReturn
74-
QStyleHintReturnMask QStyleHintReturnVariant QStyleOption
75-
QStyleOptionButton QStyleOptionComboBox QStyleOptionComplex
76-
QStyleOptionDockWidget QStyleOptionDockWidgetV2 QStyleOptionFocusRect
77-
QStyleOptionFrame QStyleOptionFrameV2 QStyleOptionFrameV3
78-
QStyleOptionGraphicsItem QStyleOptionGroupBox QStyleOptionHeader
79-
QStyleOptionMenuItem QStyleOptionProgressBar QStyleOptionProgressBarV2
80-
QStyleOptionRubberBand QStyleOptionSizeGrip QStyleOptionSlider
81-
QStyleOptionSpinBox QStyleOptionTab QStyleOptionTabBarBase
82-
QStyleOptionTabBarBaseV2 QStyleOptionTabV2 QStyleOptionTabV3
83-
QStyleOptionTabWidgetFrame QStyleOptionTabWidgetFrameV2
84-
QStyleOptionTitleBar QStyleOptionToolBar QStyleOptionToolBox
85-
QStyleOptionToolBoxV2 QStyleOptionToolButton QStyleOptionViewItem
86-
QStyleOptionViewItemV2 QStyleOptionViewItemV3 QStyleOptionViewItemV4
87-
QStylePainter QStyledItemDelegate QSwipeGesture QSyntaxHighlighter
88-
QSystemTrayIcon QTabBar QTabWidget QTableView QTableWidget
89-
QTableWidgetItem QTableWidgetSelectionRange QTabletEvent
90-
QTapAndHoldGesture QTapGesture QTextBlock QTextBlockFormat
91-
QTextBlockGroup QTextBlockUserData QTextBrowser QTextCharFormat
92-
QTextCursor QTextDocument QTextDocumentFragment QTextDocumentWriter
93-
QTextEdit QTextFormat QTextFragment QTextFrame QTextFrameFormat
94-
QTextImageFormat QTextInlineObject QTextItem QTextLayout QTextLength
95-
QTextLine QTextList QTextListFormat QTextObject QTextObjectInterface
96-
QTextOption QTextTable QTextTableCell QTextTableCellFormat
97-
QTextTableFormat QTimeEdit QToolBar QToolBox QToolButton QToolTip
98-
QTouchEvent QTransform QTreeView QTreeWidget QTreeWidgetItem
99-
QTreeWidgetItemIterator QUndoCommand QUndoGroup QUndoStack QUndoView
100-
QVBoxLayout QValidator QVector2D QVector3D QVector4D QWhatsThis
101-
QWhatsThisClickedEvent QWheelEvent QWidget QWidgetAction QWidgetItem
102-
QWindowStateChangeEvent QWizard QWizardPage QWorkspace
103-
QX11EmbedContainer QX11EmbedWidget QX11Info
104-
"""
105-
for _name in _QtGui_public_classes.split():
106-
locals()[_name] = type(_name, (), {})
107-
del _name
108-
109-
110-
class MySip(MagicMock):
111-
def getapi(*args):
112-
return 1
113-
114-
11513
class MyWX(MagicMock):
11614
class Panel(object):
11715
pass
@@ -127,8 +25,6 @@ class Frame(object):
12725

12826
def setup(app):
12927
sys.modules['cairocffi'] = MyCairoCffi()
130-
sys.modules['PyQt4'] = MyPyQt4()
131-
sys.modules['sip'] = MySip()
13228
sys.modules['wx'] = MyWX()
13329
sys.modules['wxversion'] = MagicMock()
13430

0 commit comments

Comments
 (0)