如何访问qt上的父窗口小部件?

我有一个inheritance的QTreeWidget(称为PackList)类,其父是一个KXmlGuiWindow。 我怎样才能访问父母的插槽?

我已经从QTreeWidget类getParent() – > mySlot(),但我已经得到了

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

有人知道正确的方法吗? 谢谢

如果您知道父级的类,则必须将parentWidget()转换为该类,然后调用您的插槽。 请记住,在这种情况下是否是一个插槽没有什么区别。 你只是在调用一个方法。

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

您可以通过将信号连接到插槽来进行通话。

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

最后,如果你不想投它,你可以使用QMetaObject :: invokeMethod来调用它。 这可能是矫枉过正。

我不确定我完全理解你的问题。

但是,您可以使用parentWidget()访问小部件的父小部件。

那么,你应该可以打电话给任何公共插槽:

 parentWidget()->a_slot();