Signal mit einem Slot einer Klasse verbinden, die nicht von QObject erbt.
-
Moin,
ich habe in einem QThread Signale, die mit Slots meines MainWindow verbunden sind.
connect(this, SIGNAL(connected()), myMainWindow_p, SLOT(establishedConnection())); connect(this, SIGNAL(disconnected()), myMainWindow_p, SLOT(closedConnection()));
Das funktionier ohne Probleme. Anders herum jedoch nicht.
connect(actionVia_CAN_Bus, SIGNAL(triggered()), myControl_p, SLOT(establishConnectionCan())); connect(actionVia_RS_232, SIGNAL(triggered()), myControl_p, SLOT(establishConnectionRs232())); connect(actionDisconnect, SIGNAL(triggered()), myControl_p, SLOT(closeConnection()));
Da bekomme ich folgenden Fehler:
error C2664: 'bool QObject::connect(const QObject *,const char *,const QObject *,const char *,Qt::ConnectionType)': Konvertierung des Parameters 3 von 'Control_C *' in 'const QObject *' nicht möglich Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
Klar, klingt logisch. Wie bekomme ich das hin, dass ich dennoch die Slots aus meiner Control_C ansprechen kann?
Danke im Voraus.
Edit: Ich habe einfach mal die Anweisung des Compilers befolgt und die Sachen gecasted. Jetzt funktionierts:
(QObject *)myControl_p