Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/11/2014, 15:11
dehm
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 2 meses
Puntos: 10
Qt. Mejor estrategia para asociar una tabla a un combo

Bueno, esto de Qt no es tan fácil como yo creía

Llevo todo el día peleándome con un problema, pero la verdad es que a estas alturas ni siquiera sé cual es la mejor estrategia para acometerlo.

Se trata de un menú en el que se configuran diversos aspectos del programa y se define información que luego ha de ser usada.
Estos campos están agrupados por categorías.
La idea es tener un QComboBox, cuyos miembros al ser seleccionados mostrarán una tabla con la información y parámetros que hay que rellenar.

Mi primer planteamiento fue tener un QStackedWidget, con tantas tablas apiladas (QTableWidget en este caso) como categorías existan. Así, cada vez que cambie desde el combo la categoría, se me muestra la tabla asociada.

Pero luego pensé que podía dejar el diseño más abierto, de forma que sólamente hubiera una tabla, la cual se rehará cada vez que cambie la categoría.
Este diseño me permite que la interfaz sea totalmente independiente de los datos que la suministran, y la verdad es que me gusta mas.
Si en un futuro quiero añadir mas datos o categorías, el diseño del formulario no varía.

Solo hay un pero....que no me sale, y llevo todo el día peleándome con ello.
El mayor problema es que no puedo establecer un sistema de señales/slots, ya que el QComboBox tiene una señal con un int como parámetro, y yo puedo crear una función para hacer/modificar la tabla, pero siempre he de pasarle los datos, por lo que no me coinciden las firmas de las funciones.
Esta es mi clase:

fichero .h
Código C++:
Ver original
  1. class DialogoDatosGenerales : public QDialog, private Ui::DialogoDatosGenerales
  2. {
  3. ................................
  4. private slots:
  5.     void CrearTablaDatosGenerales(Datos *D);
  6. }
Pero claro, la conexión señal/slot debería ser así:
Código C++:
Ver original
  1. QObject::connect(this->comboListaDatos, SIGNAL(currentIndexChanged(int)),
  2.                      this->TablaDatosGenerales,SLOT(CrearTablaDatosGenerales(D)));

Antes de tirar la toalla y resignarme al diseño con QStackedWidget...¿alguien se anima a darme una buena idea?
__________________
Mi calculadora en Qt

Última edición por dehm; 30/11/2014 a las 15:47