QT 之 编译错误总结(1)
来源:互联网 发布:java多线程编程 pdf 编辑:程序博客网 时间:2024/06/10 18:28
1.'Thread' does not name a type
错误在于:头文件互相包含
2. QTcpSocket不能跨线程访问
比如说我在子线程的构造函数对其成员QTcpSocket进行了实例化,然后在其run()函数中进行操作;
运行时一般会出现如下信息:
QObject: Cannot create children for a parent that is in a different thread.
(Parent is QNativeSocketEngine(0xadc00df0), parent*s thread is QThread(0x81c0298), current thread is QThread(0x806e000)
如果在构造函数中实例化了QTcpSocket,则该对象将属于调用该子线程的对象而非子线程本身;
解决: 不要在构造函数中实例化,而是在子线程的run()函数中实例化并操作,这样才属于子线程本身。
3.不能跨线程调用Q_OBJECT
运行时出现如下信息:
QSocketNotifier: socket notifiers cannot be enabled from another thread.
原因在于不能跨线程调用Q_OBJECT,只要使用了信号槽机制就不能跨线程访问;
注意QT中界面线程是主线程,其他创建的QThread,只要使用了Q_OBJECT,就不能跨线程访问。
这里延伸出一个问题:
如果不使用Qt的信号槽机制,能跨线程访问吗?当然是可以的。
但QTcpSocket步行,原因在于QTcpSocket本身就使用了信号槽机制。
4.错误:QApplication: Object event filter cannot be in a different thread.
不要在子线程中处理UI,官网警告过
- QT 之 编译错误总结(1)
- QT 之 编译错误总结(2)
- Qt——编译错误总结
- Qt错误总结1:
- Android之 编译错误总结
- QT 之 编译错误(三)
- qt常见错误总结1
- Qt之网络编程错误总结
- Qt之网络编程错误总结
- QT之网络编程错误总结
- QT/E 编译错误
- qt编译错误汇总
- qt 编译错误
- QT 编译错误
- Qt编译错误
- qt编译错误
- QT编译错误
- QT编译错误
- 在线编译器地址
- 【《Unity着色器和屏幕特效开发秘笈》】学习整理:第二章(1)
- HTML5-SVG
- javaweb学习总结——Servlet开发(一)
- CAN协议,系统结构和帧结构
- QT 之 编译错误总结(1)
- ffmpeg extradata aac
- centos 7安装pycharm
- Dynamics CRM2016 为实体创建Alternate Key时报有重复的键的解决方法
- Curl学习之用法
- Android应用层(网络编程)三(Volley使用与源码解析)
- I
- 判断IE各版本浏览器的最直接有效的方式
- Scala的单元测试