QT中关于信号重载的问题。
这是信号的声明
signals:
//信号必须有signals关键字来声明
//信号没有返回值,但可以有参数
//信号就是函数的声明,只需声明,无需定义
//使用:emit mySignal();
//信号可以重载
void mySignal();
这是建立信号与槽的操作,这一步没有错误提示
connect(&subWin,&SubWidget::mySignal,this,&MainWidget::dealSub);
但当我尝试使用信号重载时
signals:
//信号必须有signals关键字来声明
//信号没有返回值,但可以有参数
//信号就是函数的声明,只需声明,无需定义
//使用:emit mySignal();
//信号可以重载
void mySignal();
void mySignal(int,QString);
信号与槽的操作就会出现错误提示:
显示no matching member function for call to'connect'
我想知道这一步应该怎么解决呢?
你这个不叫信号重载。你这个叫自定义信号
mySignal这个信号定义在SubWidget这个类里,然后触发条件就是emit mySignal
你connect写的有问题。把subwin这个类定义成指针。因为信号槽的触发需要窗体一直存在。如果使用非指针。系统任务他是一个局部变量。
当函数执行结束,就会自动释放。
为什么要重载信号呢?你用的Qt4还是Qt5,connect需要指明参数类型
connect用地址方式连接的话又不同参数列表需要指明的