Seite 1 von 1

Signal wird als protected behandelt!?

Verfasst: 3. Juni 2009 09:47
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

Re: Signal wird als protected behandelt!?

Verfasst: 3. Juni 2009 10:13
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 ;-) )

Verfasst: 3. Juni 2009 10:19
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")

Verfasst: 4. Juni 2009 11:13
von Rumbert
Arghh naja manchmal sieht man den Wald vor lauter Bäumen nicht mehr...
Vielen Dank!