Jun 092012
Alumnos de Pr2, para que tengan un ejemplo simple de como crear una aplicación en C++ usando Qt y que tenga varias ventanas, hice un ejemplo en poco tiempo con la ayuda de Qtcreator. Los pasos son:
- Crear un nuevo proyecto del tipo Qt Widget Project y seleccionar Qt GUI Application.
- Dibujar la ventana principal. No definir los eventos (signals) ni las acciones (slots) en los Widgets.
- Crear un nuevo Widget de Dialogo con File->New File or Project -> Qt -> Qt Designer Form Class, de nuevo no definir ni signals ni slots.
- Repetir el paso 3 hasta tener todos los Dialogos requeridos.
- Cada dialogo es gestionado por medio de una clase. Crear instancias de esas clases en las clases donde se desean abrir los nuevos dialogos. Las instancias las creé como atributos de las clases contenedoras. En el ejemplo, se crea un objeto de la Clase dialogoUno como atributo de la clase ventanaPrincipal, ver archivo ventanaPrincipal.h, línea 34.
- Una vez creados todos los objetos de los diálogos en las clases donde serán creadas, se definen las acciones (go to slot ..) para cada un de los eventos(signals) a capturar.
El código fuente del ejemplo está aquí. Los diálogos se comportan de forma Modal, esto se puede desactivar colocando un comentario a la linea donde aparece la instrucción
setWindowModality(Qt::ApplicationModal);
Creo que esta opción que puede activarse/desactivarse en la ventana de atributos del Widget, usualmente en parte inferior derecha del Designer.
Para compilar la aplicación sin el Qtcreator basta con hacer lo siguiente:
wget http://webdelprofesor.ula.ve/ingenieria/rafael/p2/variasVentanas.tgz tar -xzvf variasVentanas.tgz cd variasVentanas/ qmake variasVentanas.pro make ./variasVentanas
Listo
Observaciones para Qt 5.0.x:
- Se debe generar de nuevo el archivo variasVentanas.pro usando:
qmake -project -o variasVentanas.pro
- Modificar variasVentanas.pro según lo expresado en este post
- En el main.cpp cambiar la linea 1 por:
#include<QApplication>