7 Capitulo7
LA LIBRERÍA QT.
Para la programación tanto de los Waspmotes, como de la GUI utilizada para
monitorizar los datos provenientes de los mismos, WaspMonitor, se ha utilizado el lenguaje de
programación C/C++. Sin embargo, en la programación de la interfaz gráfica de usuario y de
toda la parte que corresponde al PC (lectura desde el puerto USB, etc.), se ha empleado una
librería C++denominada Qt y otras derivadas de ésta, como son Qextserialport o Qwt.
Lo que diferencia a Qt de una librería C++ cualquiera es que añade muchísimas
funcionalidades a C++, cambiándolo de tal forma, que prácticamente crea un nuevo lenguaje
de programación. Además, facilita la tarea de programar en C++, que en casos como en la
programación de entornos gráficos, puede ser bastante ardua.
No obstante, esimportante destacar que Qt no deja de ser C++, es decir, siempre se pueden
usar librerías estándar o cualquier otra libería y la sintaxis de C++ normal y corriente, por lo
cual, es muy versátil.
Por otra parte, existen bindings de Qt para que programadores de otros lenguajes de
programación puedan utilizar las librerías sin tener que dejar de usar su lenguaje habitual.
Ejemplos de estos bindingsson Qt Jambi (Java), PyQt (Python), PHP-Qt (PHP) o Qyoto (C#),
entre otros muchos.
Otro punto clave de Qt es que se considera una biblioteca “multiplataforma”, ya que permite
programar el mismo código y utilizarse para crear programas para Linux, Windows, Mac OS,
etc., permitiendo realizar lo mismo que Java, pero siendo mucho más eficiente al no haber
“máquina virtual” de por medio, sino códigocompilado expresamente para cada máquina.
Puesto que Qt se creó y creció como software libre (aunque en la actualidad hay
disponible una versión comercial alternativa), existen muchísimas comunidades de
programadores que crean librerías extraordinariamente útiles, como son el caso de
Qextserialport o Qwt, y que al ser de código abierto, se pueden utilizar libremente y de
manera gratuita.
Qt fuedesarrollada inicialmente por la empresa noruega Trolltech (fundada por Haavard Nord
y Eirik Chambe-Eng, dos estudiantes del Instituto Noruego de Tecnología) y posteriormente
comprada por Nokia en 2008. Está disponible en tres tipos de licencia, GNU LGPL, GNU GPL y
Propietaria (Nokia) y se ha utilizado para desarrollar software de todos los ámbitos como por
ejemplo: Skype, Mathematica, Google Earth,Adobe Photoshop Album, etc.
En la fecha de realización del proyecto, la biblioteca va por la versión Qt 4.8.
Por todo lo expuesto, y mucho más, en el presente proyecto se ha dedicado un
capítulo en el que se explican de manera breve las características generales de esta potente
herramienta de programación.
136
7.1. El modelo de objetos Qt.
Qt se basa en el modelo de objetos Qt. Esta arquitecturaes la que hace que Qt sea tan
potente y fácil de usar. Los dos pilares de Qt son la clase QObject (objeto Qt) y la herramienta
MOC (compilador de metaobjetos).
La programación mediante el modelo de objetos Qt se fundamente en derivar las clases
nuevas que se creen de objetos QObject. Al hacer esto, se heredan una serie de propiedades
que caracterizan a Qt (y lo hacen especial frente al C++estándar):
Gestión simple de la memoria.
Signals y slots.
Propiedades.
Auto-conocimiento.
No hay que olvidar, sin embargo, que Qt no deja de ser C++ estándar con macros, por lo que
cualquier aplicación “programada en Qt”, puede tener código en C++ estándar o incluso en C.
De estas características, se comentarán en los siguientes apartados las dos primeras,
por ser las empleadas principalmente enel proyecto y en general en cualquier aplicación
escrita en Qt.
7.1.1. Gestión simple de la memoria.
Cuando se crea una instancia de una clase derivada de un QObject es posible pasarle al
constructor un puntero al objeto padre. Esta es la base de la gestión simple de memoria.
Al borrar un objeto padre, se borran todos sus objetos hijos asociados. Esto quiere decir que
una clase derivada de...
Regístrate para leer el documento completo.