jueves, 25 de diciembre de 2014

Conectar señales de Qt con funciones en C

La nueva sintaxis de Qt 5 nos permite conectar señales de objetos de Qt con funciones estáticas comunes.

Para ello usamos la siguiente sintaxis:

connect(emisor,  &ClaseDelEmisor::señal,  funcion);

Por ejemplo:


connect(timer, &QTimer::timeout, &f );



Ejemplo:

/** Cuando se vence el tiempo del timer y se envia
     la señal timeout() se ejecuta la función f **/


void f(){
    qDebug()<<"&timer.timeout ----> f()";
}


int main(int argc, char *argv[])
{   
    QCoreApplication a(argc, argv);    
    QTimer *timer = new QTimer();


    // Se conecta la señal timeout con la función f
    timer->connect(timer, &QTimer::timeout, &f );    

    timer->start(1000);    
    return a.exec();
}

Diagrama:



Links:

No hay comentarios:

Publicar un comentario