mir ist keine methode bekannt, die dir die signale liefert.
maximal die von moc generierten files (moc_filename.cpp) koennte man durchsehen, da stehen sie (am ende glaube ich) drin.
-=Freaky=- hat geschrieben:vllt. gibts aber auch was viel schoeneres.
Gibt es, wird sind hier bei Qt
QObject::metaObject() -> QMetaObject.
Da gibt es ein methodCount() und method(int index).
Das zusammenfügen in ner Schleife und nach dem QMetaMethod::methodType() fragen
void getSignals(QStringList& signallist,const QMetaObject* obj, QMetaMethod::MethodType methodtype)
{
int size = obj->methodCount();
for(int i = 0; i < size; ++i)
{
QMetaMethod m = obj->method(i);
if(m.methodType() == methodtype && !signallist.contains(m.signature()))
signallist.append(m.signature());
}
}
Allerdings würde ich nachwievor gerne ALLE Signals haben. Will jetzt aber nicht ALLE Klassen instanzieren (Momentan sind das nur 4 Aufrufe mit QPushButton, LineEdit, ComboBox und Label).
Das gibt zwar schon ne menge, aber so richtig glücklich macht das mich natürlich nicht
upsala hat geschrieben:Du bekommst doch alle Signale eines Objektes. Egal ob du es als QObject übergibst oder z.B. als QLabel.
Oder willst du alle Signale, aller Objekte deiner Anwendung?
Jein. Ich will eigentlich eine Liste der "Standard Signale", ich brauche dies für meinen Codegenerator, um entsprechende SLOT(_signalname_) Elemente generieren zu können.
Arbeite gerade an einem Plugin der Code für Qt 4.6 generiert.