|
24 | 24 | QT_API_PYQTv2="PyQt4v2"
|
25 | 25 | QT_API_PYSIDE="PySide"
|
26 | 26 | QT_API_PYQT="PyQt4"# Use the old sip v1 API (Py3 defaults to v2).
|
27 |
| -QT_API_ENV=os.environ.get('QT_API') |
| 27 | +QT_API_ENV=os.environ.get("QT_API") |
| 28 | +# Mapping of QT_API_ENV to requested binding. ETS does not support PyQt4v1. |
| 29 | +# (https://github.com/enthought/pyface/blob/master/pyface/qt/__init__.py) |
| 30 | +_ETS= {"pyqt5":QT_API_PYQT5,"pyside2":QT_API_PYSIDE2, |
| 31 | +"pyqt":QT_API_PYQTv2,"pyside":QT_API_PYSIDE, |
| 32 | +None:None} |
28 | 33 | # First, check if anything is already imported.
|
29 | 34 | if"PyQt5"insys.modules:
|
30 | 35 | QT_API=QT_API_PYQT5
|
|
41 | 46 | # Otherwise, check the QT_API environment variable (from Enthought). This can
|
42 | 47 | # only override the binding, not the backend (in other words, we check that the
|
43 | 48 | # requested backend actually matches).
|
44 |
| -elifrcParams["backend"]=="Qt5Agg": |
| 49 | +elifrcParams["backend"]in ["Qt5Agg","Qt5Cairo"]: |
45 | 50 | ifQT_API_ENV=="pyqt5":
|
46 | 51 | dict.__setitem__(rcParams,"backend.qt5",QT_API_PYQT5)
|
47 | 52 | elifQT_API_ENV=="pyside2":
|
48 | 53 | dict.__setitem__(rcParams,"backend.qt5",QT_API_PYSIDE2)
|
49 | 54 | QT_API=dict.__getitem__(rcParams,"backend.qt5")
|
50 |
| -elifrcParams["backend"]=="Qt4Agg": |
| 55 | +elifrcParams["backend"]in ["Qt4Agg","Qt4Cairo"]: |
51 | 56 | ifQT_API_ENV=="pyqt4":
|
52 | 57 | dict.__setitem__(rcParams,"backend.qt4",QT_API_PYQTv2)
|
53 | 58 | elifQT_API_ENV=="pyside":
|
|
56 | 61 | # A non-Qt backend was selected but we still got there (possible, e.g., when
|
57 | 62 | # fully manually embedding Matplotlib in a Qt app without using pyplot).
|
58 | 63 | else:
|
59 |
| -QT_API=None |
| 64 | +try: |
| 65 | +QT_API=_ETS[QT_API_ENV] |
| 66 | +exceptKeyError: |
| 67 | +raiseRuntimeError( |
| 68 | +"The environment variable QT_API has the unrecognized value {!r};" |
| 69 | +"valid values are 'pyqt5', 'pyside2', 'pyqt', and 'pyside'") |
60 | 70 |
|
61 | 71 |
|
62 | 72 | def_setup_pyqt5():
|
|