Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Signal / Slot Frage



  • Hallo,

    ich habe ein Frage betreffend der SIGNAL/SLOT Verbindung.

    Ich erstelle aktuell in meiner Main ein Objekt "uReceiver" der Klasse "UdpReceiver". Diese habe ich im RootContext bekannt gemacht um aus der QML darauf zuzugreifen. Das hat soweit auch alles super funktioniert (mit Hilfe aus dem Forum hier).

    Jetzt habe ich eine zweite Klasse "FileIO" (auch in der main erstellt) die Daten bereitstellt die in der QML eine Tabelle füllt. Auch die Funktioniert soweit so gut.

    Jetzt wollte ich per SIGNAL/SLOT erreichen das wenn das SIGNAL von der uReciver kommt "das ein kompletter QString mit Daten vorhanden sind der SLOT zum setzen des QString in der FileIO ausgeführt wird und da bin ich gerade etwas ratlos.

    Ich habe versucht den Connect sowohl in der "UdpReiver" Klasse, als auch in der "FileIO" Klasse auszuführen was nicht funktioniert da ich ja keine entsprechenden Objekte habe da diese in der Main erstellt werden.

    Wenn ich versuche den connect in der main umzusetzen meldet er "no matching function for call to 'connect'. Was aus meiner sicht ja logisch ist weil da der MOC ja nicht arbeitet wenn ich es richtig verstanden habe.

    Meine Frage ist jetzt, wie kann ich im "connect" in einer der Klassen auf Objekte die ich in der Main erstelle verweisen (und geht das überhaupt) oder habe ich da in der gesammten Erstellung schon einen Fehler und ich muss das ganze Projekt neu strukturieren.

    Besten dank im Voraus

    Marco


  • Moderators

    hi @Throndar

    das sollte einfach genug zu lösen sein.

    in der main kannst du auch connect nutzen. Da aber main nicht von QObject abgeleitet ist, musst du die statischen connect nutzen, also

    QObject::connect(a , b, c, d, typ);
    

    anstatt

    connect(a , b, c, d, typ);
    


  • Hallo @J.Hilk

    also manchmal bin ich echt erstaunt wie dumm ich mich anstelle ... o.O

    Funktioniert exakt so wie du meintest, alles bestens!

    Vielen, vielen Dank!

    Gruß

    Marco


  • Moderators

    @Throndar
    kein Problem, ich helfe gerne wenn ich kann, und manchmal sieht man halt den Wald vor lauter Bäumen nicht.
    Geht jedem mal so :-)

    Viel Spaß/Erfolg beim Programmieren!


Log in to reply