实现信号与槽函数绑定机制中出现如下错误:
error: no matching function for call to 'Widget::connect(QPushButton*&, void (QAbstractButton::*)(bool), Widget*, <unresolved overloaded function type>)'
错误原因是因为在进行响应调用的时候,不知道该调用哪个函数说明出现函数重用。
void classover();
void classover(QString food);
对于上面两个函数,屏蔽一个就可以,屏蔽哪一个?
因为在信号与槽函数对应的时候,有两个特点需要注意:
1.信号和槽的参数类型必须一一对应
2.信号和槽的参数个数可以不相等,但是信号参数个数必须必槽函数个数多
综上两个原因,保留无参函数,最终实现正确结果。
在Qt编程中遇到信号与槽函数绑定错误,原因是函数重载导致调用不明确。问题出现在尝试连接一个QPushButton的信号到一个Widget对象的两个不同函数:void classover()和void classover(QString food)。为了解决这个问题,遵循信号与槽的匹配规则,应保留无参数的函数void classover(),因为它满足信号参数个数多于槽函数的条件,从而实现正确绑定。
1374

被折叠的 条评论
为什么被折叠?



