Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/02/2015, 17:19
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 10 años, 1 mes
Puntos: 204
Respuesta: signals de varios pushButton en QTCreator

Cita:
Iniciado por Papu93 Ver Mensaje
Hola, que tal?
Tengo poca experiencia con el tema de QT, y estoy desarrollando un juego que consta de 10 niveles.
La interfaz grafica tiene 10 botones que todos tienen que abrir una misma ventana.
El problema reside en que yo necesito saber que boton se ha apretado, con el fin de cargar el nivel respectivo.
Mi pregunta es como puedo hacer eso?
Muchas gracias
Si todos los botones van a parar al mismo slot, puedes usar el método "sender( )", presente en todos los objetos que heredan de QObject. Este método te devuelve un puntero al QObject que ha emitido la última señal:

Código C++:
Ver original
  1. void ventana::ButtonClicked( )
  2. {
  3.   // Opción 1: Si tienes acceso al puntero del botón
  4.   if ( sender( ) == btn1 )
  5.  
  6.   // Opción 2: Puedes verificar el nombre del objeto y, de paso, el tipo.
  7.   // o cualquier otra característica del mismo que te permita identificarlo.
  8.   QButton* button = dynamic_cast< QButton* >( sender( ) );
  9.   if ( button && button->name( ) == "NombreBoton1" )
  10. }

También puedes hacer uso de "SignalMapper", como te ha comentado jc_moc.

Un saludo.