我有一个继承自QTreeWidget的类(称为PackList),其父类是KXmlGuiWindow。 如何访问父类的槽函数?
我尝试从QTreeWidget类中使用getParent()->mySlot(),但是出现了以下错误:
error: no matching function for call to 'PackList::mySlot()'
有人知道正确的方法吗?谢谢
我有一个继承自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())->setEnabled();
,并且我重写了父类的 setEnabled 函数。然后,我的修改没有起作用。后来我意识到这是一个愚蠢的错误,但我认为这可能是许多同行会浪费时间的一个点。无论如何,请不要忘记类型转换。 - meakgoz