• 5104阅读
  • 2回复

QProcessDialog 进程条的问题 [复制链接]

上一主题 下一主题
离线amwzl
 

只看楼主 倒序阅读 楼主  发表于: 2010-04-20
     pd = new QProgressDialog("Operation in progress.", "Cancel", 0, 1000
                             ,this,Qt::FramelessWindowHint);
    connect(this,SIGNAL(sigProgressBar()),pd,SLOT(show()));
    emit this->sigProgressBar();
    sigProcessBar是我自己定义的信号函数
    
   运行的时候没什么问题,进程条在走。。可是到了100%不自动关闭。。。。。

  当我改成模态对话框时
  即换成connect(this,SIGNAL(sigProgressBar()),pd,SLOT(exec()));

   必须得按下cancel键,进程条才会走。到了100%会自动关闭

  不太明白怎么回事,请大家帮忙解决下
[ 此帖被amwzl在2010-04-20 18:24重新编辑 ]
离线yangfanxing
只看该作者 1楼 发表于: 2010-04-20
偶觉得。。。就针对case 1:
结束后你发一个
::cancel () 信号给它,Over。。。
PHPWind好恶心。。。不想看这种界面。。。
离线yangfanxing
只看该作者 2楼 发表于: 2010-04-20
PS:如copy之类的例子,偶一般用对象。。。不用指针;
这样只要show()完,它自己就Over了。
但是可能比较耗资源;
  1. QProgressDialog pd("Operation in progress.", "Cancel", 0, [color=#66FF00]number[/color]
  2.                                                           ,0,Qt::WindowTitleHint);
  3.                 while(!in.atEnd() && i < [color=#66FF00]number[/color])
  4.                 {
  5.                     for(int j = 0; j < samples; j++)
  6.                     {
  7.                         float tmp = 0;
  8.                         in >> tmp;
  9.                         m_currentImgData.append(double(tmp));
  10.                     }
  11.                     i++;
  12.                     pd.setValue(i);
  13.                     pd.show();
  14.                 }

for e.g

光说效果可以~~~还请大家指正~
PHPWind好恶心。。。不想看这种界面。。。
快速回复
限100 字节
 
上一个 下一个