qt中信号与槽多次调用的问题及信号与槽的连接方式问题

qt中信号与槽多次调用的问题及信号与槽的连接方式问题_第1张图片

  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进行了链接,则会进入对用链接的槽函数中执行。 注意:在多线程中,直接调用是在调用者线程中执行,发信号是在接收者线程中执行

你可能感兴趣的:(qtlol,qt)