Ist es möglich, alle Verbindungen eines QObjects zu trennen, ohne es zu löschen
Ich habe ein QObject A, dies ist mit einem anderen QObject B verbunden. Jetzt möchte ich, dass A eine Verbindung zu C herstellt, ein drittes QObject und sich vollständig von B trennt.
Kinderleicht! Das Problem ist, dass ich eine Menge von A's habe, von denen jedes einen eigenen Satz von Signalen und Slots hat (B's / C's sind allgemeiner). Bisher habe ich für jeden Klassentyp manuell eine Verbindungs- und eine Trennungsmethode erstellt. Die Methoden sind im Grunde Kopien voneinander, die das @ austauscheconnect
zumdisconnect
call, gehe gegen das nicht wiederholen).
So ist meine Frage: Ist die folgende Funktion möglich?
void deleteAllConnections(QObject* someObject) {
// TODO disconnect all connections owned by someObject
// For bonus points: Is there a way of accessing the QMetaObject connected to?
}
Ich habe in der herumgestochert QMetaObject, QObject und dieSignale und Slots Dokumentation ohne Glück (obwohl das oft keine Garantie ist ...).