• 4618阅读
  • 3回复

关于QTextEidt的append函数一个问题 [复制链接]

上一主题 下一主题
离线tornadomeet
 
只看楼主 倒序阅读 楼主  发表于: 2012-07-25
     为什么TextBrowser下的append()函数2个连在一起使用时,只有当最后一个append函数运行完后才显示append的内容呢?
     比如说,
     ui->textBrowser->append(“first” );
     usleep( 1000000 );//延时1s
     ui->textBrowser->append( “second” );
     usleep( 1000000 );
     ui->textBrowser->append( “third” );    
     实际运行到这几句代码时,并不是显示完first,延时1s后显示second,再延时1s后显示third.而是直接延时2秒,first,second,third同时显示呢?
离线dbzhang800

只看该作者 1楼 发表于: 2012-07-25
只需记住一点,永远不要在主线程(GUI线程)中使用sleep
离线tornadomeet
只看该作者 2楼 发表于: 2012-07-25
回 1楼(dbzhang800) 的帖子
哦,那使用延时函数该怎么弄了,自己写么?我看网上好多都是用这个函数的。
我把程序改成在终端输出字符串,用的usleep函数,其结果却正常,满足我们预先设定的了啊。即
    cout<<"first"<<endl;
     usleep( 1000000 );//延时1s
     cout<<"second"<<endl;
     usleep( 1000000 );
     count<<"third"<<endl;
离线tornadomeet
只看该作者 3楼 发表于: 2012-07-25
回 1楼(dbzhang800) 的帖子
谢谢这位高手,确实是usleep的问题。在网上找了一种方法,用下面的代码代替usleep()函数之就正常了,前提是#include <QElapsedTimer>。
QElapsedTimer t;
    t.start();
    while(t.elapsed()<1000)
        QCoreApplication::processEvents();
快速回复
限100 字节
 
上一个 下一个