6

我有一个继承的 QTreeWidget(称为 PackList)类,它的父类是 KXmlGuiWindow。如何访问父母的插槽?

我已经尝试了 QTreeWidget 类中的 getParent()->mySlot() 但我有

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

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

4

2 回答 2

15

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

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

通过将信号连接到插槽,您可以在不投射的情况下拨打电话。

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

最后,如果您不想强制转换,可以使用QMetaObject::invokeMethod来调用它。这可能是矫枉过正。

于 2008-12-11T02:21:50.103 回答
1

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

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

然后,您应该可以调用任何公共插槽:

parentWidget()->a_slot();
于 2008-12-09T14:16:30.537 回答