Qt slot signal argument übergabe



  • Hi alle,

    Ich habe folgendes Problem:
    Ich will mit einem Button die Aktion A ausführen, der Befehl A benötigt variablen vom Objekt B.

    Ich möchte nun also SIGNAL clicked() vom Button mit SLOT A(KlasseB * zeiger) verbinden. SIGNAL und SLOT sollten dieselben Argumente haben folglich habe ich
    public signal: clicked(KlasseB * zeiger) definiert.
    Wenn ich aber auf den Button clicke geschieht nichts, der Slot wird nicht aufgerufen. Q_Object ist eingefügt und qmake meckert auch nicht.

    Was mache ich falsch?
    Besten Dank

    Simon



  • signal und slot muessen die gleichen parameter haben.
    woher soll QButton::clicked() deine klasseB kennen?
    einfachste alternative:
    einen "zwischenslot" ohne parameter machen der die gewuenschte funktion von klasseA aufruft.
    oder:
    einen custom-button implementieren der ein entsprechendes signal clicked(irgendwas*) anbietet.



  • Hi,

    Danke Dir viel mal für deine Antwort. Habe zwar nicht direkt deine Idee befolgt, aber über das Signal/Slot concept nachgedacht und gemerkt dass ich da was falsch,besser gesagt gar nicht verstanden habe. Der Slot gehört jetzt zur Klasse von der die variablen benötigt werden, so ists glaub ich auch gedacht.

    Auf jeden Fall 👍 mich zum nachdenken gebracht, so wies sein sollte

    Thanks


Anmelden zum Antworten