Qt中使用线程时的注意事项(线程没起作用的原因)
来源:互联网 发布:lol 4k分辨率优化 编辑:程序博客网 时间:2024/05/15 10:24
今天偶然发现,运行程序时程序输出窗口中有如下提示:
QObject::startTimer: Timers can only be used with threads started with QThread
也就是当对象有父对象时,是不可以移到其他线程当中去的。
代码如下:m_Flower为自定义对象,flowerThead为线程。
**不起作用的代码:
m_Flower=new DispatchFlower(this); flowerThread=new QThread(); m_Flower->moveToThread(flowerThread); connect(this,SIGNAL(sendQuery_GetRTSheetList(QString)),m_Flower,SLOT(getRTDispatchSheetList(QString))); connect(m_Flower,SIGNAL(haveGotDispatchSheetList(QList<DispatchSheet>&)),this,SLOT(editMultiSheets(QList<DispatchSheet>&))); flowerThread->start();
**修改后起作用的代码:
m_Flower=new DispatchFlower(); flowerThread=new QThread(); m_Flower->moveToThread(flowerThread); connect(this,SIGNAL(sendQuery_GetRTSheetList(QString)),m_Flower,SLOT(getRTDispatchSheetList(QString))); connect(m_Flower,SIGNAL(haveGotDispatchSheetList(QList<DispatchSheet>&)),this,SLOT(editMultiSheets(QList<DispatchSheet>&))); flowerThread->start();
注意:因m_Flower没有指定父对象,需要在析构函数中删除此m_Flowe对象
0 0
- Qt中使用线程时的注意事项(线程没起作用的原因)
- QT 线程中使用子线程操作注意事项
- QT 线程的使用
- android activity finish()没起作用的几个原因
- QT中线程的介绍及使用
- Qt 中线程QThread的简单使用
- Thinkphp 使用过程中,模型中使用其它表却总是没起作用的解决办法
- Android中关于线程使用的几点注意事项
- Android中关于线程使用的几点注意事项
- Qt线程(QThread)的使用/简介
- Qt线程的简单使用
- Qt::QThread->线程的使用
- 在Qt使用moveToThread() qt的线程
- 线程函数中操作DC的注意事项
- 类中线程的声明注意事项
- android ndk中创建线程的注意事项
- rewrite 没有起作用的原因
- 创建线程函数的使用注意事项
- 线程的安全性
- 奇迹卓越属性对照表
- java代码优化总结(转)
- p11 openssl (series a)
- Linux 下C++开发入门指南,简易入门版
- Qt中使用线程时的注意事项(线程没起作用的原因)
- BP神经网络
- 设置slidemenu中toolbar左侧NavigationIcon的点击事件
- android-获取手机小区信息代码设计
- 图片限制大小并上传
- 博客转移
- AOP的底层实现-CGLIB动态代理和JDK动态代理
- 生成验证码
- [C语言] 指针函数的问题