@@ -243,10 +243,17 @@ def __init__(self, figure):
243
243
w , h = self .get_width_height ()
244
244
self .resize (w , h )
245
245
246
+ @property
247
+ def _dpi_ratio (self ):
248
+ # Not available on Qt4 or some older Qt5.
249
+ try :
250
+ return self .devicePixelRatio ()
251
+ except AttributeError :
252
+ return 1
253
+
246
254
def get_width_height (self ):
247
- dpi_ratio = self .devicePixelRatio ()
248
255
w , h = FigureCanvasBase .get_width_height (self )
249
- return int (w / dpi_ratio ), int (h / dpi_ratio )
256
+ return int (w / self . _dpi_ratio ), int (h / self . _dpi_ratio )
250
257
251
258
def enterEvent (self , event ):
252
259
FigureCanvasBase .enter_notify_event (self , guiEvent = event )
@@ -256,9 +263,9 @@ def leaveEvent(self, event):
256
263
FigureCanvasBase .leave_notify_event (self , guiEvent = event )
257
264
258
265
def mouseEventCoords (self , pos ):
259
- x = pos .x () * self .devicePixelRatio ()
266
+ x = pos .x () * self ._dpi_ratio
260
267
# flip y so y=0 is bottom of canvas
261
- y = self .figure .bbox .height - pos .y () * self .devicePixelRatio ()
268
+ y = self .figure .bbox .height - pos .y () * self ._dpi_ratio
262
269
return x , y
263
270
264
271
def mousePressEvent (self , event ):
@@ -325,9 +332,8 @@ def keyReleaseEvent(self, event):
325
332
print ('key release' , key )
326
333
327
334
def resizeEvent (self , event ):
328
- dpi_ratio = self .devicePixelRatio ()
329
- w = event .size ().width () * dpi_ratio
330
- h = event .size ().height () * dpi_ratio
335
+ w = event .size ().width () * self ._dpi_ratio
336
+ h = event .size ().height () * self ._dpi_ratio
331
337
if DEBUG :
332
338
print ('resize (%d x %d)' % (w , h ))
333
339
print ("FigureCanvasQt.resizeEvent(%d, %d)" % (w , h ))
0 commit comments