[gelöst] Signal Slot dynamisch erstellen

Alles rund um die Programmierung mit Qt
Antworten
ms47
Beiträge: 35
Registriert: 22. Januar 2009 10:02

[gelöst] Signal Slot dynamisch erstellen

Beitrag 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
Zuletzt geändert von ms47 am 27. Januar 2009 16:29, insgesamt 1-mal geändert.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Du suchst QSignalMapper.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
ms47
Beiträge: 35
Registriert: 22. Januar 2009 10:02

Beitrag 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
Antworten