Seite 1 von 1

Signal scheint nicht anzukommen

Verfasst: 7. Oktober 2009 20:13
von Mr.Green
Hallo,
ich habe eine Klasse, die von QComboBox abgeleitet ist:

Code: Alles auswählen

class DistriComboBox : public QComboBox
{
    Q_OBJECT

public:
    DistriComboBox(QWidget *parent);
    void setDistri(int id);

public slots:
    void setDistriChanged(int index);

signals:
    void distriChanged(int new_distri_id);

};
Diese ComboBox soll nun den itemData-Wert verschicken, wenn ihr Eintrag geändert wurde:

Code: Alles auswählen

DistriComboBox::DistriComboBox(QWidget *parent) : QComboBox(parent)
{   
    connect(this, SIGNAL(currentIndexChanged(int)), this, SLOT(setDistriChanged(int)));
}


void DistriComboBox::setDistriChanged(int index)
{
    int id = this->itemData(index).toInt();
    emit distriChanged(id);
}

Auf dieses Signal connecte ich mich im Hauptprogramm:

Code: Alles auswählen

DistriComboBox *cmb = new DistriComboBox(this);

        connect(cmb, SIGNAL(distriChanged(int)), this, SLOT(on_distriChanged(int)));

on_DistriChanged erzeugt einfach Debugausgaben. Und genau da fehlen mir immer mal wieder die "Changed"-Debugmeldungen.

Wo liegt mein Fehler? Bis zum emit scheint es laut Debugmeldungen noch zu funktionieren.

Danke,
Mr.Green

Verfasst: 7. Oktober 2009 22:38
von solarix
Signals verschwinden nicht einfach... :wink: daher:

- heisst es jetzt on_distriChanged oder on_DistriChanged..?
- was bedeutet "immer mal wieder"? Bekommst du gar keine Meldungen... oder nur für eine bestimmte Combobox und für eine ander nicht... oder ...?

Verfasst: 8. Oktober 2009 08:10
von AuE
Und was liefert connect?