From 9b696cf34e2c7a0289f60865bee5925752dbd54a Mon Sep 17 00:00:00 2001 From: Neil Date: Sat, 16 Jul 2011 18:56:16 +0200 Subject: [PATCH] Only enable imread for new enough sip versions. Warn user if sip is too old --- scikits/image/io/_plugins/qt_plugin.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/scikits/image/io/_plugins/qt_plugin.py b/scikits/image/io/_plugins/qt_plugin.py index 583bf08f..6d931408 100644 --- a/scikits/image/io/_plugins/qt_plugin.py +++ b/scikits/image/io/_plugins/qt_plugin.py @@ -10,6 +10,8 @@ try: from PyQt4.QtGui import (QApplication, QMainWindow, QImage, QPixmap, QLabel, QWidget) from PyQt4 import QtCore, QtGui + import sip + import warnings except ImportError: window_manager._release('qt') @@ -27,6 +29,7 @@ except ImportError: app = None + class ImageLabel(QLabel): def __init__(self, parent, arr): QLabel.__init__(self) @@ -77,7 +80,7 @@ class ImageWindow(QMainWindow): self.mgr.remove_window(self) -def imread(filename, as_grey=False): +def imread_qt(filename, as_grey=False): """ Read an image using QT's QImage.load """ @@ -111,6 +114,14 @@ def imread(filename, as_grey=False): return numpy.dot(img, transform) return img +if sip.SIP_VERSION >= 0x040c00: + # sip.voidptr only acquired a buffer view in 4.12.0, so our imread + # doesn't work with earlier versions + imread = imread_qt +else: + warnings.warn(RuntimeWarning( + "sip version too old. QT imread disabled")) + def imshow(arr, fancy=False): global app