• 6074阅读
  • 6回复

QThread创建的QTimer不发信号的问题 [复制链接]

上一主题 下一主题
离线pywepe
 
只看楼主 倒序阅读 楼主  发表于: 2010-01-15
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
void Thread::run(){

    QTimer* q=new QTimer();
    A a;
    this->connect(q,SIGNAL(timeout()),this,SLOT(doT()));
    q->start(3000);
    while(true){
        qDebug()<<"thread:"<<QThread::currentThreadId()<<endl;
        QThread::sleep(1);
    }
    this->exec();
}

为什么 q 不发出信号
离线dbzhang800

只看该作者 1楼 发表于: 2010-01-15
一个 while死循环, exec 就不可能执行
离线benbenmajia

只看该作者 2楼 发表于: 2010-01-15
while(1)
安然.....
离线benbenmajia

只看该作者 3楼 发表于: 2010-01-15
while(1)
安然.....
离线pywepe
只看该作者 4楼 发表于: 2010-01-15
引用第1楼dbzhang800于2010-01-15 11:31发表的  :
一个 while死循环, exec 就不可能执行



就等你来回答了

醍醐灌顶
离线pywepe
只看该作者 5楼 发表于: 2010-01-15
引用第1楼dbzhang800于2010-01-15 11:31发表的  :
一个 while死循环, exec 就不可能执行



把exec放到while前 while代码块就不执行了 那怎么办 while里面是任务呀
离线pywepe
只看该作者 6楼 发表于: 2010-01-15
引用第1楼dbzhang800于2010-01-15 11:31发表的  :
一个 while死循环, exec 就不可能执行



大哥我知道了

在qt里不要去用while(true)

而去用QTimer发信号放到事件循环里去
快速回复
限100 字节
 
上一个 下一个