其他分享
首页 > 其他分享> > Qt 的信号槽关系

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