[Gelöst] Signal und Sources

Alles zum Qt Framework für Java
Antworten
May-C
Beiträge: 20
Registriert: 28. März 2007 20:37

[Gelöst] Signal und Sources

Beitrag von May-C »

Hallo
Kann mir jemand verraten wie die Signal Slot funktion bei qtjambi funktioniert. Bin hier jetzt schon ewig am rumprobieren aber es funktioniert nicht. Leider habe ich auch keine Doku oder Example dazu gefunden. Es ist mir klar das es etwas mit QSignalEmitter zu tun haben muss.

Ausserdem würde ich noch gerne wissen ob man den Source von qtjambi irgendwie zu Eclipse hinzufügen kann. Dann hätte ich mir nämlich den QPushButton anschauen können und hätte gesehen wie dort das Signal clicked implmentiert ist.

Ich hoffe es kann mir jemand helfen.
Zuletzt geändert von May-C am 15. Juli 2007 22:03, insgesamt 1-mal geändert.
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

Beispiel Klick auf Pushbutton

Code: Alles auswählen

this.m_ui.PushButton.clicked.connect(this,"OnClicked()");
Beispiel eigenes Signal

Code: Alles auswählen

   // SIGNAL erzeugen
   Signal0 m_leerSignal = new Signal0();
   Signal1<String> m_textSignal = new Signal1<String>();

   // SIGNAL mit SLOT verbinden
   m_leerSignal .connect(this,"OnLeerSignal()");
   m_textSignal.connect(this,"OnTextSignal(String)");

   // SLOT
   public void OnLeerSignal() {
   // ...
   }
   public void OnTextSignal(String text) {
   // ...
   }

   // SIGNAL auslösen
   m_leerSignal.emit();
   m_textSignal.emit("Hallo");
May-C
Beiträge: 20
Registriert: 28. März 2007 20:37

Beitrag von May-C »

Code: Alles auswählen

// SIGNAL erzeugen
   Signal0 m_leerSignal = new Signal0();
   Signal1<String> m_textSignal = new Signal1<String>(); 
Hast du das auch mal ausprobiert ? Das funktioniert hier nämlich nicht. Eclipse meldet mir:
No enclosing instance of type QSignalEmitter is accessible ...
ArneStocker
Beiträge: 300
Registriert: 3. November 2004 16:15
Wohnort: Berlin

Beitrag von ArneStocker »

natürlich ... :roll:

stellt doch mal den (ggf. um die nicht relevanten Teile gekürzten) Beispielcode hier ein.

Gruß Arne

PS.: Du kannst Dir auch die Klasse SignalCollector (in diesem Forum) downloaden, die macht nämlich von QSignalEmitter Gebrauch.

PPS.: wenn ich es richtig verstehe handelt es sich bei QSignalEmitter um einer innere Klasse von QObject. Die Klasse in der Du Signal0 oder was auch immer verwendest muss daher wohl von QObject abgeleitet sein.
May-C
Beiträge: 20
Registriert: 28. März 2007 20:37

Beitrag von May-C »

Vielen Dank für die Hilfe. Schuld war meine Unfähigkeit. Habe nämlich das extends QObject vergessen... :oops:
Antworten