QT: Signale über mehrere Objekte schicken?



  • Hi, ich habe wiedermal ein Problem.

    Ich möchte über die Hauptroutine ein Objekt starten, welches wiederum ein zweites Objekt startet. Dabei soll das zuletzt geladene Objekt der Hauptroutine ein, bzw. mehrere Signale schicken.

    Dazu schreibe ich in die Hauptroutine, nachdem das erste Objekt gestartet wurde:

    connect(object1, SIGNAL(listObtained(const QStringList&)),
    	  this, SLOT(doAnything(const QStringList&)));
    object1->routine();
    

    In object1 habe ich nur die routine() stehen, welche wiederum eine Routine in object2 ausführt. In der Headerdatei von object1 steht folgendes:

    signals:
    	listObtained(const QStringList&);
    

    Genau das gleiche steht auch in der Headerdatei von object2. Im Quelltext von object2 wird dann die Routine ausgeführt, welche dann mit

    emit listObtained(stringlist);
    

    die Daten schickt. Jedenfalls sollte sie es. Denn bis hier funktioniert alles, leider werden aber keine Daten geschickt, bzw. in der Hauptroutine kommt nichts an. Leider gibt es aber auch keine Fehlermeldungen, so dass ich nicht weis, was ich falsch mache. Ich bilde mir ein, dass das so schonmal funktioniert hat.

    Ich hoffe Ihr könnt mir helfen.



  • schickst du das Signal von object2 in object1 auch weiter, damit es deine Hauptroutine mitbekommt?

    // in object1
    connect( object2, SIGNAL( listObtained( const QStringList& ) ), this, SIGNAL( listObtained( const QStringList& ) ) );
    


  • Mh danke das wars. Trotzdem verstehe ich nicht, warum es dann schon einmal ohne dem funktioniert hat ...


Anmelden zum Antworten