Signal wird als protected behandelt!?

Alles rund um die Programmierung mit Qt
Antworten
Rumbert
Beiträge: 48
Registriert: 25. Mai 2009 18:28
Wohnort: Witten

Signal wird als protected behandelt!?

Beitrag von Rumbert »

Hallo miteinander,

DLL A emmitiert ein Signal:
Im Header:

Code: Alles auswählen

// Im Header:
class __CommunicatorDeclspec VideoClient : public AbstractClient
{
	Q_OBJECT
 [...]
  public slots:
		void slotReciveMessage();
	signals:
		void signalRenderCamImage(const QImage& image);

// Im CPP-File:
  emit signalRenderCamImage(image);
Die Klasse in der das Signal deklariert ist, ist als Singleton realisiert.

In DLL B möchte ich mich nun mit dem Signal connecten

Code: Alles auswählen

// Im CPP-File:
   connect( VideoClient::Instance(), SIGNAL(signalRenderCamImage (const QImage& image)),
			this, SLOT(slotGetRenderCamImage(const QImage& image)) );
Nun erscheint beim debuggen die Meldung : No such Signal signalRenderCamImage (const QImage& image).
In DLL B kann ich Problemlos auf die Instance des VideoClients zugreifen. Und wenn ich die Autovervollständigung in VisualStudio benutze
VideoClient::Instance()-> wird mir in der Liste das gewünschte Signal angezeigt, jedoch mit einem Schlüssel davor, als wenn es protected wäre.
Einem Signal kann ich in der Deklaration aber doch gar keinen Sichtbarkeitsbezichner zuweisen...
Liegt hier in meinem vorgehen irgendwo ein denkfehler?

Bin für jeden Tipp dankbar!
Grüße Rumbert
neuschi
Beiträge: 78
Registriert: 23. Mai 2007 10:59

Re: Signal wird als protected behandelt!?

Beitrag von neuschi »

Rumbert hat geschrieben:VideoClient::Instance()-> wird mir in der Liste das gewünschte Signal angezeigt, jedoch mit einem Schlüssel davor, als wenn es protected wäre.
Sie sind protected:

signals are protected in the sense of protected C++ member functions

http://doc.qtsoftware.com/4.5/templates.html

.. aber das Problem ist die falsche Signatur im connect-Statement: Dort dürfen nur die Typen, nicht die Bezeichner der Variablen stehen.

\Ralf

(P.S.: Oops, Solarix war schneller ;-) )
Zuletzt geändert von neuschi am 3. Juni 2009 10:26, insgesamt 3-mal geändert.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

...was aber nichts mit dem Problem zu tun hat. Einfach nochmals den "connect(...)" durchlesen und dort den Fehler beheben. (siehe http://doc.trolltech.com/4.5/qobject.html#connect .. das Beispiel "WRONG")
Rumbert
Beiträge: 48
Registriert: 25. Mai 2009 18:28
Wohnort: Witten

Beitrag von Rumbert »

Arghh naja manchmal sieht man den Wald vor lauter Bäumen nicht mehr...
Vielen Dank!
Antworten