How to access to parent widget on qt?


Question

I have an inherited QTreeWidget (called PackList) class and its parent is a KXmlGuiWindow. How can I access to the parent's slots?

I've tried getParent()->mySlot() from the QTreeWidget class but I've got

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

Does anybody know the correct way? Thanks

1
5
12/9/2008 1:51:29 PM

Accepted Answer

If you know the parent's class, you will have to cast parentWidget() to that class and then call your slot. Keep in mind whether or not it's a slot makes no difference in this case. You are just calling a method.

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

You can make the call without casting by wiring up your signal to the slot.

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

Lastly, you can use QMetaObject::invokeMethod to call it if you don't want to cast it. That's probably overkill.

12
12/11/2008 2:21:50 AM

I'm not sure I fully understand your question.

However, you can access the parent widget of a widget with parentWidget().

Then, you should be able to call any public slot :

parentWidget()->a_slot();

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon