Qt线程之moveToThread
来源:互联网 发布:10大网络恐怖推理图 编辑:程序博客网 时间:2024/06/15 03:32
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
1.在mainwindow的添加成员:
QSubObj m_Obj;
QThread m_SubThread;
2.mainwindow构造函数中设置:
m_Obj.moveToThread(&m_SubThread);
m_SubThread.start();
3.mainwindow构造函数中绑定:
connect(&m_Obj,SIGNAL(Yoursignal()),this,SLOT(YourSlot()));
以后要想子线程向主线程中发消息,只需在子线程中使用emit Yoursignal()就可以了,当然,提到的信号和槽函数,都需要你来声明和实现的。
...........................................................................................................................................................................................
方法(3):
在Qt4.3(包括)之前,run 是虚函数,必须子类化QThread来实现run函数。而从Qt4.4开始,qthreads-no-longer-abstract ,run 默认调用 QThread::exec() 。这样一来不需要子类化 QThread 了,只需要子类化一个 QObject 就够了,这正是被 Bradley T. Hughes推荐的方法。
方法如下
QThread thread; Object obj; Dummy dummy; obj.moveToThread(&thread); QObject::connect(&dummy, SIGNAL(sig()), &obj, SLOT(slot())); thread.start();
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
方法(1):
1. 不使用事件循环。这是官方的 Manual 、example 以及相关书籍中都介绍的一种的方法。
a. 子类化 QThread
b. 重载 run 函数,run函数内有一个 while 或 for 的死循环
c. 设置一个标记为来控制死循环的退出。
这里的run函数自己执行了一个循环,不需要事件循环机制了。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
参考:http://www.cnblogs.com/findumars/p/6017830.html
参考来源:http://www.qtcn.org/bbs/read-htm-tid-63015-page-e.html#a
- Qt线程之moveToThread
- QT 线程之 moveToThread()
- Qt 线程 ---movetothread
- Qt 多线程之MoveToThread()
- 线程使用方法之moveToThread
- 理解QT线程中的moveToThread
- 在Qt使用moveToThread() qt的线程
- Qt moveToThread
- Qt moveToThread
- Qt moveToThread
- qt thread with movetothread
- 在Qt使用moveToThread()
- Qt moveToThread使用说明
- 【Qt】QThread::moveToThread
- qt中movetothread的使用
- moveToThread()
- qt,使用moveToThread函数实现多线程
- Qt之线程同步
- mac地址老化时间配置
- nfs无法挂载(客户端无法挂载服务器端)原因+解决方案
- Kotlin学习(一):基本语法
- Android创建WiFi热点研究(安全性为:无-WPA PSK-WPA2 PSK,Android6.0适配)
- 代码干货 | PHP数据库长连接mysql_pconnect的细节
- Qt线程之moveToThread
- ios有关字符串的工具类
- io--读写数据
- Matrix Power Series
- spring data redis rg.springframework.core.serializer.support.DeserializingConverter.<init>(Ljava/lan
- codeforces 835A Key races
- Linux下安装jdk8步骤详述
- 在Swing和Swt中使用JavaFX
- 配置FTP虚拟登录