eigens definiertes Signal aus andere Klasse aufrufen

Alles rund um die Programmierung mit Qt
Antworten
Karsten
Beiträge: 9
Registriert: 9. Oktober 2004 15:11
Wohnort: Greven
Kontaktdaten:

eigens definiertes Signal aus andere Klasse aufrufen

Beitrag 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
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Re: eigens definiertes Signal aus andere Klasse aufrufen

Beitrag 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
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Beitrag 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....
>>[-]>[-]>[-]>[-]<<<<<[->>+<-[>>>]>[[<+>-]>+>>]<<<<<]
Karsten
Beiträge: 9
Registriert: 9. Oktober 2004 15:11
Wohnort: Greven
Kontaktdaten:

Beitrag 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.
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Beitrag 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 )
>>[-]>[-]>[-]>[-]<<<<<[->>+<-[>>>]>[[<+>-]>+>>]<<<<<]
Karsten
Beiträge: 9
Registriert: 9. Oktober 2004 15:11
Wohnort: Greven
Kontaktdaten:

Beitrag von Karsten »

Jau danke fürs aufwecken :oops:
Antworten