Seite 1 von 1

Klasse mehrfach aufrufen und verknüpfen

Verfasst: 2. März 2018 07:22
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

Re: Klasse mehrfach aufrufen und verknüpfen

Verfasst: 2. März 2018 15:49
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.