Klasse mehrfach aufrufen und verknüpfen

Alles rund um die Programmierung mit Qt
Antworten
navyseabear
Beiträge: 7
Registriert: 7. Februar 2018 07:10

Klasse mehrfach aufrufen und verknüpfen

Beitrag von navyseabear »

Moin moin,
ich habe da ein hoffentlich kleines Problem.
Ich erzeuge innerhalb einer Funktion (on_pushButton_clicked()) eine Instanz meiner Klasse.

Code: Alles auswählen

item = new MyItem("TEST",80);
Dann verknüpfe ich eine Funktion (SLOT) innerhalb der Klasse mit einem Widget (SIGNAL) meines Fensters.

Code: Alles auswählen

connect(ui->zk_edit, &QLineEdit::returnPressed, [&]() {item->checkTreffer(ui->zk_edit->displayText());});
Wenn nun eine bestimmte Bedingung erfüllt ist, soll sich diese Instanz selber löschen / beenden. Das funktioniert bei einem einzelnen Aufruf super.
Rufe ich hingegen die Klasse mehrfach auf (mehrfacher Klick auf meinen Button), erzeuge ich mehrere Instanzen meiner Klasse. Die Verknüpfung erfolgt jedes Mal ohne Fehler, so dass ich davon ausging, das jede Instanz eine ordentliche SIGNAL / SLOT Verknüpfung hat. Leider scheint aber nur immer die letzte Instanz verknüpft zu sein.
Die Klasse ist aber dann trotzdem mehrfach vorhanden und jede Instanz läuft auch unabhängig voneinander ab.
Wenn meine Bedingung nun erfüllt ist, beendet sich die letzte Instanz, da anscheinend ja nur die verknüpft ist. Trifft die Bedingung erneut zu, stürzt mein Programm ab, da die letzte Instanz der Klasse ja nicht mehr da ist.
Wie aber verknüpfe (SIGNAL / SLOT) ich eine Instanz meiner Klasse so, dass alle Instanzen abgefragt und behandelt werden?
Schlagt mich, doch ich war davon ausgegangen, dass meine Klasse bei jedem Klick auf meinen Button neu erstellt wird und unabhängig voneinander verknüpft werden kann.

mfg
Tobias
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Klasse mehrfach aufrufen und verknüpfen

Beitrag von Christian81 »

Die Signal-Slot-Verbindung wird nicht einfach irgendwo wieder gelöscht. Daran liegt es also nicht. Ein minimales, kompilierbares Beispiel wäre nicht schlecht damit man sieht was sonst noch so alles passiert.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten