• 4496阅读
  • 1回复

qt4,线程类中调用QTcpSocket出错 [复制链接]

上一主题 下一主题
离线renr1981
 
只看楼主 倒序阅读 楼主  发表于: 2009-09-22
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
线程TcpThread的run函数如下所示
void TcpThread::run()
{
    tcpClient=new QTcpSocket();
    timer.start();
    timer.setInterval(reConInterval);
    connect(&timer,SIGNAL(timeout()),this,SLOT(connSrv()));
    connect(tcpClient,SIGNAL(connected()),this,SLOT(sendMsg()));
    connect(tcpClient, SIGNAL(error(QAbstractSocket::SocketError)),      this, SLOT(operateError(QAbstractSocket::SocketError)));
    //connect(tcpClient,SIGNAL(disconnected()),&timer,SLOT(stop()));    
    connect(tcpClient,SIGNAL(readyRead()),this,SLOT(recvMsg()));
    exec();
    //delete tcpClient;
}
结果总是提示,QObject: Cannot create children for a parent that is in a different thread.
上网查了很多资料,始终不知道如何修改,请高手指教
离线beajisong

只看该作者 1楼 发表于: 2009-09-26
你的timer是在原先线程上,tcpsocket在新线程上
run()里面启动别的线程的计时器导致这个错误
快速回复
限100 字节
 
上一个 下一个