• 4524阅读
  • 0回复

[提问]防止界面假死都有什么办法 [复制链接]

上一主题 下一主题
离线zyc52351484
 
只看楼主 倒序阅读 楼主  发表于: 2012-05-17
界面上有十几个按键,每个按键都有一定的操作,在操作里面,因为不能确定客户是什么时间使用这个操作,所以是一个死循环,只有完成里面的条件才会跳出来,我在里面引用了processEvents(),来防止界面假死,但是如果连续点击两个按键(没有操作),几次以后就会段错误(吐核),求高手指点下,是什么原因,测试出来是因为processEvents()这个函数出现了问题,或者其他方法解决界面假死,代码大概如下:
void Widget::qt_sleep(int ms)
{
    QTime t;

    t.start();
    while (t.elapsed() < ms)
    {
        QCoreApplication::processEvents();
    }
}
int WIdget::on_file1_clicked()
{
    ...
    ...
    while(1)
     {
          qt_sleep(200);
           if(一个判断,如果满足条件,进入if里面){ }
      }
}
int WIdget::on_file2_clicked()
{
    ...
    ...
    while(1)
     {
          qt_sleep(200);
           if(一个判断,如果满足条件,进入if里面){ }
      }
}
int WIdget::on_file3_clicked()
{
    ...
    ...
    while(1)
     {
          qt_sleep(200);
           if(一个判断,如果满足条件,进入if里面){ }
      }
}
快速回复
限100 字节
 
上一个 下一个