Cita:
Iniciado por Papu93 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 originalvoid ventana::ButtonClicked( )
{
// Opción 1: Si tienes acceso al puntero del botón
if ( sender( ) == btn1 )
// Opción 2: Puedes verificar el nombre del objeto y, de paso, el tipo.
// o cualquier otra característica del mismo que te permita identificarlo.
QButton* button = dynamic_cast< QButton* >( sender( ) );
if ( button && button->name( ) == "NombreBoton1" )
}
También puedes hacer uso de "SignalMapper", como te ha comentado jc_moc.
Un saludo.