Qt在程序运行时报错:“QObject::connect: No such slot******”
问题描述:最近想用qt写个程序,但是在使用qt自定义的槽函数和信号的时候遇到了这样一个问题,函数都没有写错,但是在程序运行时报错,找不到这个槽函数。
问题解决:问题出在槽函数的参数传递上,我把参数给了槽函数,但是信号函数却没有参数。
正确的写法应该如下面例子所示:
//在对象T1中定义槽函数
public slots:
void test_slots(QString str);
//在对象T2中定义信号函数
signal:
void test_signal(QString); //注意,这里的参数数量只能比槽函数的参数多,并且类型要能对的上
//在main函数中连接槽函数
QObject::connect(&T2,SIGNAL(test_signal(QString)),&T1, SLOT(test_slots(QString)));
//信号的触发
emit test_signal("这是测试内容");