Wie für den Zugriff auf Eltern-Widget auf qt?

stimmen
5

Ich habe eine vererbte QTreeWidget (so genannte Packliste) Klasse und ihre Eltern ist ein KXmlGuiWindow. Wie kann ich den Zugriff auf die Schlitze der Eltern?

Ich habe versucht, getParent () -> mySlot () aus der Klasse QTreeWidget aber ich habe

error: no matching function for call to 'PackList::mySlot()'

Weiß jemand, den richtigen Weg? Vielen Dank

Veröffentlicht am 09/12/2008 um 14:51
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
1

Ich bin mir nicht sicher, ob ich verstehe Ihre Frage vollständig.

Sie können jedoch das übergeordnete Widget eines Widgets mit Zugang parentWidget () .

Dann sollten Sie keinen öffentlichen Schlitz anrufen können,:

parentWidget()->a_slot();
Beantwortet am 09/12/2008 um 15:16
quelle vom benutzer

stimmen
11

Wenn Sie das übergeordnete Klasse kennen, haben Sie parentWidget () zu dieser Klasse und dann rufen Sie Ihren Schlitz werfen. Denken Sie daran, ob oder nicht es ist ein Schlitz macht keinen Unterschied in diesem Fall. Sie rufen nur eine Methode.

((KXmlGuiWindow*)parentWidget())->mySlot();

Sie können den Anruf tätigen, ohne das Signal zu dem Schlitz zu Gießen mit entsprechend verdrahteten.

connect( this, SIGNAL(mySignal()), parentWidget(), SLOT(mySlot()) );

Schließlich können Sie verwenden QMetaObject :: InvokeMethod es zu nennen , wenn Sie es nicht werfen wollen. Das ist wahrscheinlich übertrieben.

Beantwortet am 11/12/2008 um 03:21
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more