I am building a data visualization application. It is a multithreaded Gui without user interaction. I have 24 widgets that shall be updated any 100ms. 16 widgets are PyCairo rectangles and the other 8 widgets are matplotlib plots. The data being represented are just some GPIO values or in another setup higher layer (layer 5 - using UDP) network traffic data.

I am doing it with PyGTK. I have no other experiences yet.

Now my question is:

Is PyGTK the right choice for multithreaded visualization, or should I have a look at Qt or TclTk, or something else?

  • do you have anymore information? Is this application to be used on the Raspberry Pi? – kolin Jan 29 '13 at 11:09

I think you should just go ahead and do it in PyGTK. If it turns out to be too resource hungry, you can at least use what you have as a prototype for a GTK version in C or C++. If you are squeamish about C, you can use the native GTK libraries in C++ or else the existing C++ interface, gtkmm.

I do not think Qt is a good choice because, unless you are running KDE on the pi (which is probably not wise, if it is even possible), this means loading a bunch of big fat libraries just for the application, whereas the GTK ones will already be in use.

Also, your application will look and feel right using GTK on a primarily GTK-based system, and all the lightweight linux desktop environments (eg. LDXE, used by raspbian) appropriate to the pi are GTK.

I doubt TclTk is going to provide you an advantage over PyGTK, but I could be wrong.

So whatever language you choose, stick with GTK. Python should be fine, but even if it isn't, the work will not be wasted, since you can use it as a prototype for a C or C++ version.

Actually determining the feasibility of the project in (useful) concrete terms would require a fairly complex and systematic appraisal of it, meaning:

A) That you have a complete and detailed design to use in the appraisal.

B) That such a system exists for PyGTK. The definitive way to answer that question is to ask on a dedicated Python/PyGTK forum or mailing list, but most likely the answer is no, such a system does not exist.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.