QT Signal & Slot - wie uebergebe ich einen Pointer ?
-
Hallo,
ich möchte mit einem Signal der Klasse a einen Pointer auf eine Variable zum Slot der Klasse b schicken, damit ich in b die Variable benutzen kann.
Nur kriege ich das nicht hin - kann mir einer sagen, wie die Signal und Slot definitionen dann heissen sollten und wie der QObject::connect aufruf lauuten muss damit es funktioniert?
class a : public QObject { private: Q_OBJECT public: QString TestString; void initSend() { emit sendPointer ( ??? ); return; } signals: void sendPointer ( ??? ); }; // class a class b : public QObject { private: Q_OBJECT public: QString *mybpointer; public slots: void getPointer ( ??? mybpointer ) { cout << "1: " << *mybpointer << endl; } }; // class b int main() { a myA; b myB; QObject::connect ( myA,SIGNAL( sendPointer ( ??? ) ) ,myB,SLOT( getPointer( ??? ) ) ) myA.initSend(); return 0; } #include "main.moc"
Danke,
need_input
-
Hallo!
Einen Pointer auf eine Variable vom Typ T kannst Du mit dem Signal
void sendPointer(T *pt);
dem Slot
void getPointer(T *pt);
übergeben. Verbunden wird mit
connect ( myA,SIGNAL(sendPointer (T
) ,myB,SLOT( getPointer(T
) );
Ist T=QString dann wird ein Zeiger auf TestString mit
emit sendPointer(&TestString);
übergeben.
Viele Grüße
Th.P.S.: Wenn es nur um den Variablenzugriff geht kannst Du auch T & statt T * verwenden.