Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitcfb51e3

Browse files
authored
Merge pull request#12102 from meeseeksmachine/auto-backport-of-pr-12091-on-v3.0.x
Backport PR#12091 on branch v3.0.x (Respect QT_API even when the backend is not Qt{4,5}{Agg,Cairo}.)
2 parentsb5b39ce +d266600 commitcfb51e3

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

‎lib/matplotlib/backends/qt_compat.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@
2424
QT_API_PYQTv2="PyQt4v2"
2525
QT_API_PYSIDE="PySide"
2626
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}
2833
# First, check if anything is already imported.
2934
if"PyQt5"insys.modules:
3035
QT_API=QT_API_PYQT5
@@ -41,13 +46,13 @@
4146
# Otherwise, check the QT_API environment variable (from Enthought). This can
4247
# only override the binding, not the backend (in other words, we check that the
4348
# requested backend actually matches).
44-
elifrcParams["backend"]=="Qt5Agg":
49+
elifrcParams["backend"]in ["Qt5Agg","Qt5Cairo"]:
4550
ifQT_API_ENV=="pyqt5":
4651
dict.__setitem__(rcParams,"backend.qt5",QT_API_PYQT5)
4752
elifQT_API_ENV=="pyside2":
4853
dict.__setitem__(rcParams,"backend.qt5",QT_API_PYSIDE2)
4954
QT_API=dict.__getitem__(rcParams,"backend.qt5")
50-
elifrcParams["backend"]=="Qt4Agg":
55+
elifrcParams["backend"]in ["Qt4Agg","Qt4Cairo"]:
5156
ifQT_API_ENV=="pyqt4":
5257
dict.__setitem__(rcParams,"backend.qt4",QT_API_PYQTv2)
5358
elifQT_API_ENV=="pyside":
@@ -56,7 +61,12 @@
5661
# A non-Qt backend was selected but we still got there (possible, e.g., when
5762
# fully manually embedding Matplotlib in a Qt app without using pyplot).
5863
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'")
6070

6171

6272
def_setup_pyqt5():

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp