[QT] connect mit Methodenzeigern
-
Hallo!
Ich habe folgendes Problem:
Ich habe 5 Knöpfe und möchte die in einem Array speichern und entsprechend initialisieren, dafür habe ich folgende Struktur erstellt:struct Buttons { typedef void (OptionChangeWindow::*PtrToSlot)( void); QString Name; PtrToSlot Slot; }; Buttons MyButtons[2] = { {"Hinzufügen", &OptionChangeWindow::AddOption}, {"Ändern", &OptionChangeWindow::ChangeOption}, };
Mein connect sieht wie folgt aus:
connect(mCommands[i].get(), SIGNAL(clicked()), this, SLOT( MyButtons[i].Slot ) );
Wobei mCommands ein vector von boost::shared_ptr auf die QPushButtons ist.
Das Problem liegt beim letzten Parameter und zwar wird das MyButtons[i].Slot nicht aufgelöst zu der wirklichen Memberfunktion, sondern einfach als String genommen.
Der Laufzeitfehler ist dann folgender:QObject::connect: Parentheses expected, slot OptionChangeWindow::MyButtons[i].Slot
Kann man eventuell ein eigenes Makro schreiben, das den Zeiger vorher dereferenziert und das ganze dann in einen String umwandelt oder gibt es eine viel einfachere Lösung?