Prácticas
Advertencia:
Esta sección se mantiene como referencia pero su contenido puede ya no ser del todo útil por
la versión de programas usados: MinGW 4.8.2, Qt 4.8.6 y Qt Creator 3.2.0 en Windows 7.
Práctica 01
Se crearán una clase en C++ con la ayuda del IDE Qt Creator.
La creación y utilización de una clase se resume en los siguientes pasos:
Primero definir la clase.
Después implementar la clase.
Posteriormente crear objetos del tipo de la clase.
Finalmente interacturar con los objetos.
Para crear una clase con Qt Creator realiza lo siguiente:
Dirígete a File > New File or Project..., selecciona Non-Qt Project / Plan C++ Project y da clic al botón Choose...
Ingresa practica01 en el campo Name y da clic al botón Next.
Ésto corresponde al nombre de tu proyecto.
Ante las siguientes dos ventanas, de clic en el botón Next y Finish:
Da clic derecho sobre el nodo raíz de tu proyecto, selecciona Add new.., selecciona C++ / C++ Class y da clic al botón Choose...:
Ingresa Triangulo en el campo Class Name y da clic al botón Next:
Ante la siguiente ventana, da clic al botón Finish
Observaciones:
El proyecto cuenta ahora con 3 archivos:
triangulo.h
,main.cpp
ytriangulo.cpp
:triangulo.h
es un archivo cabecera (header) para especificar o definir a la clase Triangulo.Se indican los datos (atributos o propiedades) y el comportamiento (funciones) de todo aquel objeto de tipo Triangulo.
triangulo.cpp
es un archivo de código (source) para implementar a la clase Triangulo.Se indica el como se comporta (imlementación de funciones) todo objeto de tipo Triangulo.
main.cpp
es el archivo de código inicial a ejecutarse del programa mediante la funciónint main()
.Se crean los objetos de tipo Triangulo necesarios para que uno interactue con ellos.
En
triangulo.h
ingresa el siguiente código:#ifndef TRIANGULO_H #define TRIANGULO_H class Triangulo { public: /* Metodo constructor */ Triangulo(double, double); /* Metodo para el calculo del area de un triangulo */ double dameTuArea(); /* Atributo base de un triangulo */ double base; /* Atributo altura de un triangulo */ double altura; }; #endif // TRIANGULO_H
En
triangulo.cpp
ingresa el siguiente código:#include "triangulo.h" /* Metodo constructor */ Triangulo::Triangulo(double b, double h) { base = b; altura = h; } /* Metodo para el calculo del area de un triangulo */ double Triangulo::dameTuArea() { return (base * altura) / 2; }
En
main.cpp
ingresa el siguiente código:#include <iostream> #include <triangulo.h> using namespace std; int main() { Triangulo obj1(6, 3); cout << "Triangulo obj1"; cout << endl; cout << " altura = " << obj1.altura; cout << endl; cout << " base = " << obj1.base; cout << endl; cout << " area = " << obj1.dameTuArea(); cout << endl; Triangulo obj2(7, 5); cout << "Triangulo obj2"; cout << endl; cout << " base = " << obj2.base; cout << endl; cout << " altura = " << obj2.altura; cout << endl; cout << " area = " << obj2.dameTuArea(); cout << endl; return 0; }
Ejecuta el proyecto:
A partir de lo expuesto en http://www.ditutor.com/geometria_espacio/figuras_geometricas.html, crea una clase para las siguiente figuras geométricas:
- Cuadrado
- Atributos:
lado
. - Comportamiento:
dameTuArea()
ydameTuPerimetro()
.
- Atributos:
- Rectángulo
- Atributos:
base
yaltura
. - Comportamiento:
dameTuArea()
ydameTuPerimetro()
.
- Atributos:
- Trapecio
- Atributos:
base_mayor
,base_menor
yaltura
. - Comportamiento:
dameTuArea()
.
- Atributos:
- Rombo
- Atributos:
diagonal_mayor
,diagonal_menor
ylado
. - Comportamiento:
dameTuArea()
ydameTuPerimetro()
.
- Atributos:
- Cuadrado
Lecturas:
Proyecto QT:
Práctica 02
Sobre el encapsulamiento, la protección (public/private) y el estado de un objeto.
En esta práctica se modifica a la clase Triangulo para que encapsule y proteja el estado de sus propiedades.
La protección de las propiedades se lleva a cabo con la declaración de las propiedades como privadas (private) y para exponer su estado se crean métodos públicos (public):
Proyecto QT:
Observaciones:
- Por cuestiones del lenguaje ingles se usa el prefijo get para obtener el valor actual de alguna propiedad de un
objeto, por lo tanto los métodos
dameTuAltura()
,dameTuBase()
ydameTuArea()
se convertirían engetAltura()
,getBase()
ygetArea()
. De igual forma se usa el prefijo set para modificar el valor actual de alguna propiedad de un objeto, por lo que los métodosmodificaTuAltura()
ymodificaTuBase()
se convierten ensetAltura()
ysetBase()
.
Práctica 03
Sobre la creación de una GUI (Graphical User Interface o Interfaz Gráfica de Usuario).
Es esta práctica se crea un proyecto en Qt Creator en el cual se hace uso de widgets, elementos gráficos con los cuales el usuario puede interactuar.
Los widgets, en términos de programación con Qt, son objetos con atributos/propiedades y comportamientos/métodos predefinidos.
Los widgets usados son:
Window Widget: ventana principal (clase QMainWindow)
Tab Widget: contenedor pestaña (clase QTabWidget) de otros widgets.
Double Spin Box: widget para la captura de información (clase QDoubleSpinBox) por parte del usuario.
Push Button: widget de tipo botón (clase QPushButton) para efectuar alguna operación.
Los widgets de Push Button tienen asociado un slot (función/método a ejecutar) cuando algún signal (función/método emitido por el usuario) se presente en la GUI.
Proyecto QT: