Seite 1 von 1
eigens definiertes Signal aus andere Klasse aufrufen
Verfasst: 15. November 2004 09:57
von Karsten
Hi@all,
ich habe mir in einer Klasse eine eigenes SIGNAL definert und möchte dieses nun von einer anderen Klasse ansprechen, welche Widgets für die Klasse in welcher das Signal definert ist erstellt.
Wie komm ich nun auf dieses Signal?
Gruß Karsten
Re: eigens definiertes Signal aus andere Klasse aufrufen
Verfasst: 15. November 2004 11:04
von Goos
Karsten hat geschrieben:
Wie komm ich nun auf dieses Signal?
Gruß Karsten
Wo genau ist dein Problem?
...und was genau verstehst du unter "auf dieses Signal kommen"?
Goos
Verfasst: 15. November 2004 11:35
von pm_Snake
im code der klasse wo das signal ausgeführt werden soll:
emit signal();
also wenn im Headerfile
signals:
signal_bla();
steht, musst du im Code
emit signal_bla();
schreiben. Dort wo du dieses Signal abfangen willst, nimmst du ein ganz normales connect
connect( bla, SIGNAL( signal_bla() ), this, SLOT( signal_bla_emited() ) );
und schon fängst du dein eigenes Signal ab

Um den Rest kümmert sich ja QT....
Verfasst: 15. November 2004 12:00
von Karsten
Ich schildere das Problem mal ein bisschen näher.
Ich habe eien Klasse in der eine MainWidget erzeugt wird und eine weitere Klasse welche mehrere Widgets erzeugt die im MainWidget angezeigt weden sollen.
Jedes dieser Widgets besitzt einen QToolButton.
Beim Click auf einen dieser ToolButtons wird ein Slot aufgerufen, welcher nun über ein Signal die Id, welche für jedes Widgets speziell von mir erzeugt wird, an die Klasse mit dem MainWidget zurückgeben soll.
Ich möchte wissen wie ich nun das Signal welches in der Klasse mit dem MainWidget definiert wurde aus der Klasse welche die Widgtes erzeugt anspreche.
Verfasst: 15. November 2004 14:22
von pm_Snake
na mit connect
dein Signal soll noch die id mitgeben, dann brauchst du eben einen slot der dazu passt
( signal ( int ) -> slot ( int ) (!!) )
dann machst du dort wo du weisst welche id kommt einmal
emit signal( id );
und connectest es mit deinem slot( int )
Verfasst: 15. November 2004 16:11
von Karsten
Jau danke fürs aufwecken
