Sunday, October 2, 2011

Getting Started

The focus of this blog will probably be mostly on Python, Qt and PyQt.

If you are sitting there and saying "What is Python, Qt, and PyQt?"  you'll probably want to do a little bit of background research before diving into these posts.  Otherwise - we'll jump through what these 3 different technologies are quickly.


Python is an extremely powerful scripting language that provides a very flexible approach to software development.  Coming from a C/C++ background in university - I was all to happy to enter into a world without the need of compiling, memory allocation and strong-typed methods.

One of the topics we'll cover in these posts though is some of the caveats that such a flexible system can get you into.  Mostly, just because you can program poorly, doesn't mean you should.


When I did have to jump back into C/C++ - I was also extremely happy to do it within the Qt framework that manages much of that lower level information for me.

If you have ever written a windows application from scratch, you will be much happier working with Qt.

Qt is an cross-platform, open-source C++ framework developed originally by Trolltech, and now by Nokia.  While its mostly been used for its GUI interface abilities, the framework itself actually spans a wide array of functions.

(Obviously, if you need to do something where you have very strict memory allocation limits, you can't use either one of these two systems most likely - but then you probably shouldn't be reading this blog anyway).


PyQt is the wrapper code that binds these two wonderful tools together.

This set of code provides the classes that will expose the Qt framework to the Python language.  There really isn't much to say about this one, other than the fact you'll need it to be able to run the rest of these tutorials.

A note about PyQt: Nokia's official support for Python bindings has now switched over to PySide, which can be found here.  At the moment, I have not worked with PySide at all, so I cannot comment on the differences between them, or which one should be used moving forward on a new project.

The general consensus at the places I've worked is that it was both not production ready, and the productions I was on were not ready to make such a large overhaul.

I don't generally like to support working with outdated software, so I'd say address your needs as you go and see when PySide becomes a better solution for you than PyQt.  I'm sure that will happen at somepoint, somepoint soon, and possibly - already has.

1 comment:

  1. I am happy to find your distinguished way of writing the post. Now you make it easy for me to understand and implement the concept. Thank you for the post.