Qt多次链接connect函数的信号槽会调用多次问题

1. 发送一次信号,调用多次槽函数问题
在同一个类中,多次链接QObject::connect(sender, SIGNAL(signalSender(QString, int)), receiver, SLOT(onSignalSender(QString, int))); 会导致发送一次信号signalSender(QString, int) 多次调用槽函数(onSignalSender(QString, int),如果链接了一次,那么,发送一次signalSender信号,就调用一次onSignalSender槽函数,如果链接了两次,那么发送一次signalSender信号,就调用两次onSignalSender槽函数,。。。以此类推。


2. 信号的直接调用问题
在Qt中,一般发送信号都是通过 emit signalSender() 方式发送的,其实也可以通过直接调用信号  signalSender()进行发送,此时,如果调用了信号signalSender,且该信号通过connect进行了链接,则会进入对用链接的槽函数中执行。 注意:在多线程中,直接调用是在调用者线程中执行,发信号是在接收者线程中执行

你可能感兴趣的:(Qt/QML的实践积累)