在Qt中,有一个信号槽机制,在跨线程等操作时使用较为便利。但是信号槽使用时,今天碰见一个问题。
test * mtest=new test();
connect(test,SIGNAL(chufa()),this,SLOT(xiangying()));
如上,不小心将connect语句重复执行了两次,就会出现,一个chufa(),就会触发多次**xiangying()**函数,connect了几次,就会有几个该线程,即便是完全一样的信号槽。
因此,在使用Qt的信号槽的时候,一定要注意不要重复connect,并且,如果要重新执行该函数,一定要加上disconnect()函数。
disconnect()如下:
disconnect(test,SIGNAL(chufa()),this,SLOT(xiangying()));