Qt运行时报错:QObject::connect: No such signal以及QMetaObject::connectSlotsByName:No matching signal for
·
QObject::connect: No such signal
使用connect连接信号与槽函数时,附带了信号或者槽函数的参数。编译会通过,而运行不会通过。
若信号函数
void signal_1(int param);
槽函数
void function_1(int param);
而connect写成
connect(objectA,SIGNAL(signal_1(int param)),objectB,SLOT(function_1(int param)));
编译会通过,运行时会报错,并且无法触发槽函数
QObject::connect: No such signal
QObject::connect: No such slot
正确写法在connect中只有类型,没有参数
connect(objectA,SIGNAL(signal_1(int)),objectB,SLOT(function_1(int)));
QMetaObject::connectSlotsByName:No matching signal for
对于槽函数,如果写成了on_控件名_信号名的格式,会被qt认为是信号/槽的自动关联。如果再用connect函数显式的关联该函数,就会出现No matching signal for的错误。因此解决方法就是去掉“on_”前缀
更多推荐
已为社区贡献11条内容
所有评论(0)