From 05973f3c550488f95b79ef3a88b1acf99452c419 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Sat, 8 Jan 2022 01:52:24 -0500 Subject: [PATCH] Backport PR #22135: Fix loading user-defined icons for Qt plot window --- lib/matplotlib/backends/backend_qt.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/backends/backend_qt.py b/lib/matplotlib/backends/backend_qt.py index 8493b4cb9772..68f61a6cc75e 100644 --- a/lib/matplotlib/backends/backend_qt.py +++ b/lib/matplotlib/backends/backend_qt.py @@ -677,8 +677,14 @@ def _icon(self, name): Construct a `.QIcon` from an image file *name*, including the extension and relative to Matplotlib's "images" data directory. """ - name = name.replace('.png', '_large.png') - pm = QtGui.QPixmap(str(cbook._get_data_path('images', name))) + # use a high-resolution icon with suffix '_large' if available + # note: user-provided icons may not have '_large' versions + path_regular = cbook._get_data_path('images', name) + path_large = path_regular.with_name( + path_regular.name.replace('.png', '_large.png')) + filename = str(path_large if path_large.exists() else path_regular) + + pm = QtGui.QPixmap(filename) _setDevicePixelRatio(pm, _devicePixelRatioF(self)) if self.palette().color(self.backgroundRole()).value() < 128: icon_color = self.palette().color(self.foregroundRole())