[Wylug-discuss] XML data storage & GUI design

Roy Mac roymac.2 at ntlworld.com
Tue Nov 22 10:21:31 GMT 2005


Look at www.xml.org -->  http://www.xml.org/xml/resources_cover.shtml

I have used python/tk - do not recommend it.
Several that I work with use python/qt - basically for the same reasons
discussed in Roger's paper.  They speak highly of qt - especially the ease
of making changes.


-----Original Message-----
From: wylug-discuss-bounces at wylug.org.uk
[mailto:wylug-discuss-bounces at wylug.org.uk] On Behalf Of Roger Leigh
Sent: Monday, November 21, 2005 6:49 PM
To: Mischa Oliver Altmann
Cc: wylug-discuss at wylug.org.uk
Subject: Re: [Wylug-discuss] XML data storage & GUI design

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Mischa Oliver Altmann <een2moa at leeds.ac.uk> writes:

> I plan to store aquired data (e.g. sensors) in an XML file. I have 
> long looked for an oppertunity to work with XML but lack just about 
> all experience. Is anyone working with XML? Pointers to good resources
(incl.
> books) would be appreciated.

I suggest you use one of the common XML libraries, such as libxml2 or expat.
There are probably python bindings for both, or other python-specific
libraries.

These typically represent the XML as a tree (acyclic graph) of elements,
which contain data items (leaf nodes).  Functions are provided to navigate
and manipulate the tree.  You will implement routines to convert your data
model to and from this tree form.

Depending on how much "XML" you want, you might only need to scratch the
surface, especially if all you want is a "file format".  Otherwise you might
also want to investigate XML Schema etc..

> Further more, I would like to create a (fairly basic?) GUI showing 
> sensor data (with history) and possibly video from the webcam(s) 
> together with control buttons for movement of robot and configuration 
> of extra hardware (lights, etc.).
> This GUI feeds off the XML data which is received via a WiFi-link from 
> the robot.
>
> I've received several suggestions starting from Python/Tk and 
> Python/GTK+ to MinGW and QT based ideas. Multiplatform isn't necessary 
> but would be ideal. <drifting> put it all on a live-cd... </drifting> 
> Can someone patch together some arguments for any one combination?

I think you might possibly find this useful:

  http://people.debian.org/~rleigh/gtk/ogcalc/

This demonstrates how to write a simple GTK+ application, in C, C++ and
Python, both with and without Glade.  You might find the
Python+Glade example useful.  In contrast to the tutorials, which just
show you how individual bits work, this aims to demonstrate how to structure
a GUI program, which many folks get wrong because simple examples usually
omit the needed structure.

I strongly suggest you separate the XML processing from the GUI side, using
a common pattern such as MVP (model, view, presenter).  For example, you can
have a class (or set of classes) representing your data (the "model"), which
can be converted to and from XML ("serialisation").  Then you have a GUI
widget to display/interact with the model (the view and presenter).  The
view is the graphical display, whereas the presenter is the logic that
controls user interaction, which is closely tied to the view but not
necessarily part of it.

http://www.object-arts.com/EducationCentre/Overviews/ModelViewPresenter.htm
http://www.martinfowler.com/eaaDev/ModelViewPresenter.html


Regards,
Roger

- --
Roger Leigh
                Printing on GNU/Linux?  http://gimp-print.sourceforge.net/
                Debian GNU/Linux        http://www.debian.org/
                GPG Public Key: 0x25BFB848.  Please sign and encrypt your
mail.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.8+ <http://mailcrypt.sourceforge.net/>

iD8DBQFDghZ9VcFcaSW/uEgRAhrOAKCiGQouG6iYw1ZZEx0NYTdxEQ/8VACgsRkQ
4ixogmxeWkGOJLCpGgkegNo=
=fiKU
-----END PGP SIGNATURE-----

_______________________________________________
Wylug-discuss mailing list
Wylug-discuss at wylug.org.uk
http://mailman.lug.org.uk/mailman/listinfo/wylug-discuss





More information about the Wylug-discuss mailing list