Seite 1 von 1

[gelöst] Signal Slot dynamisch erstellen

Verfasst: 27. Januar 2009 15:04
von ms47
Hallo,

ich hab mal wieder eine Frage. Ich erstelle dynamisch 10 verschiedene Buttons, denen ich eine einzige Funktion als Slot zuweisen will:

Code: Alles auswählen

for (int i=0; i<10; i++)
{
    QPushButton *button    = new QPushButton(this);
    button->setObjectName( tr("button%1").arg(i) );
    button->setText( tr("ändere Wert %1").arg(i) );
    QObject::connect(button, SIGNAL(clicked()), this, SLOT(on_button_clicked()));
}
Irgendwo anders definiere ich dann den Slot:

Code: Alles auswählen

on_button_clicked()
{
    //wenn button1 gedrueckt wird gebe 1 aus
    //wenn button2 gedrueckt wird gebe 2 aus
}
Das funktioniert soweit auch. Nur woher weiß ich, welcher Button betätigt wurde?
Mal angenommen ich hätte 1000 Buttons, die im Prinzip das gleiche machen sollen. Dann wäre es ja blöde, wenn ich extra für jeden Button eine extra Funktion anlegen müsste.

Bin für jeden Tipp dankbar.

Gruß
Markus

Verfasst: 27. Januar 2009 15:07
von macman
Du suchst QSignalMapper.

Verfasst: 27. Januar 2009 16:28
von ms47
macman hat geschrieben:Du suchst QSignalMapper.
Das war der richtige Tipp. Danke.
Das war aber ein Krampf bis ich das verstanden habe...

Gruß
Markus