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
eigens definiertes Signal aus andere Klasse aufrufen
Re: eigens definiertes Signal aus andere Klasse aufrufen
Wo genau ist dein Problem?Karsten hat geschrieben: Wie komm ich nun auf dieses Signal?
Gruß Karsten
...und was genau verstehst du unter "auf dieses Signal kommen"?
Goos
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....
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....
>>[-]>[-]>[-]>[-]<<<<<[->>+<-[>>>]>[[<+>-]>+>>]<<<<<]
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.
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.
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 )
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 )
>>[-]>[-]>[-]>[-]<<<<<[->>+<-[>>>]>[[<+>-]>+>>]<<<<<]