• 7765阅读
  • 1回复

[提问]我写了个QT发飞信的类(继承qthread),在主线程里执行正常,运行start就出错,求帮助内详 [复制链接]

上一主题 下一主题
离线lsla
 
只看楼主 倒序阅读 楼主  发表于: 2012-04-24

在主线程里 运行都正常的 执行 start 就出现下面的错误  这是怎么回事呢  附上源码 求各位帮助
QObject: Cannot create children for a parent that is in a different thread.

(Parent is QNetworkAccessManager(0x22fe74), parent's thread is QThread(0x3f4fd8), current thread is FeiXin(0x22fe68)
QSocketNotifier: socket notifiers cannot be enabled from another thread

fxtest.rar (4 K) 下载次数:8

离线realfan

只看该作者 1楼 发表于: 2012-11-28
QNetworkAccessManager虽然是写在FeiXin中的,但FeiXin是在主线程创建的,所以QNetworkAccessManager是属于主线程的。
在子线程中,使用QNetworkAccessManager时,为本属于主线程QNetworkAccessManager创建了子对象。这种情况是不允许的。
看能不能用指针代替,然后在子线程中,再创建对象。这样,QNetworkAccessManager就属于子线程了,也就不会出现上面的问题了。


快速回复
限100 字节
 
上一个 下一个