Qt 的信号槽关系
作者:互联网
上面代码的运行结果:
槽函数执行时的所在线程和信号发送操作的所在线程并不是同一个,前者位于main线程中,后者位于子线程中。
由此可以引申两个问题:
(1) 二者同属于子线程类,程序运行时发送信号操作在子线程完成,对应的槽函数却是在main线程执行,究其原因,得从Qt对象的依附性说起。
在Qt编程中,默认情况下,对象依附于创建自身的线程,例如上面代码中TestThread对象t它是在main()函数中创建的,那么t依附于主线程,而槽函数在其所依附的线程中被调用执行,因此,槽函数TestThread_Slot()是在main线程中执行。
要想让TestThread_Slot()函数运行在main()创建的子线程中,可以使用moveToThread()函数更改TestThread对象所依附的线程:
https://blog.csdn.net/qq_29344757/article/details/78136829
标签:关系,Slot,Qt,线程,信号,main,TestThread,函数 来源: https://blog.csdn.net/guoke312/article/details/116452293