在学习使用qt的过程中,没有好好的去了解信号与槽的机制,导致出现了这么一段代码:
connect(timer1, SIGNAL(timeout()), this, SLOT(exeMonitor(QString)));
在编译时没有出现错误,但当触发该信号时输出框显示:
即:矛盾的发送/接收参数。
在仔细了解了信号与槽之后发现,不管是调用系统的还是自定义,信号和槽函数参数类型要一致,由于timeout()是无参数的,exeMonitor(Qstring )包含一个参数类型,所以会报错。改成exeMonitor()并将相应的槽函数修改之后成功运行。
另外,信号与槽函数都不能传参,所以类似exeMonitor(Qstring fileName)这样的函数也是错误的。