old_contents: import plugin
  from _plugin_util import prepare_for_display
  
  import numpy as np
  import sys
  
  app = None
  windows = []
  
  try:
      from PyQt4.QtGui import (QApplication, QMainWindow, QImage, QPixmap,
                               QLabel)
  except ImportError:
      pass
  else:
  
      class ImageWindow(QMainWindow):
          def __init__(self, arr):
              QMainWindow.__init__(self)
  
              img = QImage(arr.data, arr.shape[1], arr.shape[0],
                           QImage.Format_RGB888)
              pm = QPixmap.fromImage(img)
  
              label = QLabel()
              label.setPixmap(pm)
              label.show()
  
              self.label = label
              self.setCentralWidget(self.label)
  
          def closeEvent(self, event):
              # Allow window to be destroyed by removing any
              # references to it
              windows.remove(self)
  
      def show(arr, block=True):
          global app
  
          if not '-qt4thread' in sys.argv and app is None:
              app = QApplication([])
  
          arr = prepare_for_display(arr)
  
          iw = ImageWindow(arr)
          iw.show()
  
          # Keep track of window so that it doesn't get destroyed
          windows.append(iw)
  
          if app and block:
              app.exec_()
  
      plugin.register('qt', show=show)
  
  if __name__ == "__main__":
      import scikits.image.io as io
  
      io.plugin.use('qt', 'show')
  
      img = np.empty((200, 200, 3), dtype=np.uint8)
      img[:50, :50, 0] = 100
      img[25:100, 25:100, 1] = 200
      img[:, :, 2] = 155
      io.imshow(img, block=False)
      io.imshow(img)
  
new_contents: import plugin
  from _plugin_util import prepare_for_display
  
  import numpy as np
  import sys
  
  app = None
  windows = []
  
  try:
      from PyQt4.QtGui import (QApplication, QMainWindow, QImage, QPixmap,
                               QLabel)
  except ImportError:
      pass
  else:
  
      class ImageWindow(QMainWindow):
          def __init__(self, arr):
              QMainWindow.__init__(self)
  
              img = QImage(arr.data, arr.shape[1], arr.shape[0],
                           QImage.Format_RGB888)
              pm = QPixmap.fromImage(img)
  
              label = QLabel()
              label.setPixmap(pm)
              label.show()
  
              self.label = label
              self.setCentralWidget(self.label)
  
          def closeEvent(self, event):
              # Allow window to be destroyed by removing any
              # references to it
              windows.remove(self)
  
      def show(arr, block=True):
          global app
  
          if not '-q4thread' in sys.argv and app is None:
              app = QApplication([])
  
          arr = prepare_for_display(arr)
  
          iw = ImageWindow(arr)
          iw.show()
  
          # Keep track of window so that it doesn't get destroyed
          windows.append(iw)
  
          if app and block:
              app.exec_()
  
      plugin.register('qt', show=show)
  
  if __name__ == "__main__":
      import scikits.image.io as io
  
      io.plugin.use('qt', 'show')
  
      img = np.empty((200, 200, 3), dtype=np.uint8)
      img[:50, :50, 0] = 100
      img[25:100, 25:100, 1] = 200
      img[:, :, 2] = 155
      io.imshow(img, block=False)
      io.imshow(img)
  
subject: Fix q4thread typo.