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:

  1. Crear un nuevo proyecto del tipo Qt Widget Project y seleccionar Qt GUI Application.
  2. Dibujar  la ventana principal. No definir los eventos (signals) ni las acciones (slots) en los Widgets.
  3. 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.
  4. Repetir  el paso 3 hasta tener todos los Dialogos requeridos.
  5. 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.
  6. 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:

    1. Se debe generar de nuevo el archivo variasVentanas.pro usando:
        qmake -project -o variasVentanas.pro
    2. Modificar variasVentanas.pro según lo expresado en este post
    3. En el main.cpp cambiar la linea 1 por:
      #include<QApplication>

     

 Deja un comentario

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(requerido)

(requerido)