1  Introduction

1.1  Motivation

I am in the process of creating an open-source PyQt app that explores the use of various image processing operations (using the Leptonica C library http://www.leptonica.com as the underlying image processing engine). One of my initial goals was to be able to view multiple QPixmaps while optionally keeping their view’s pan and zoom values synchronized (so you can easily compare the results of the image processing operations).

As a first step I’ve managed to come up with the application described in these pages, but I’d like to make sure I am following PyQt & Python “good practices” before going on to create my “real” application. I’d appreciate any comments on the overall architecture & implementation. It could very well be that I should be using dip even though it’s pretty new? (As far as Python style goes let me warn you that I use camelCase naming and prefix “private” data member names with a _.)

You can send a message to tpgit via GitHub, leave comments on the Project’s issues page, or post them to the PyQt Mailing List or Qt Mailing List with a subject containing “PyQt MDI Image Viewer”.

Todo

Incorporate suggestions from feedback.

1.2  Prequisites

Python 2.6 is required (it will probably run under Python 2.7 and Python 3). For Windows I highly recommend ActiveState Python.

You’ll also need PyQt 4.x for the corresponding version of Python.

If you want to regenerate the documentation from the .rst sources you’ll need Sphinx.

1.3  Installation

You can either download a tarball or zipfile from here or clone the repository using git.

1.4  Usage

To use the MDI Image Viewer open up a Command Prompt, switch to the main MDI Image Viewer directory, and enter:

python mdiimageviewer.py

If you want to test the single Image Viewer:

python imageviewer.py imagefilename

this will print out debugging messages to stdout as various signals are generated.