Signal scheint nicht anzukommen

Alles rund um die Programmierung mit Qt
Antworten
Mr.Green
Beiträge: 21
Registriert: 6. September 2009 21:50

Signal scheint nicht anzukommen

Beitrag 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
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag 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 ...?
AuE
Beiträge: 918
Registriert: 5. August 2008 10:58

Beitrag von AuE »

Und was liefert connect?
Antworten