Qt是开源的简单的C++编程工具,而且开源免费。我是从VB6过来的,概念上容易传承,推荐使用。
有时在长时间循环中需要全占(即不能做其他事)进度条,这时就要用对话框式进度条(我起的名字)了。在Qt中很简单:
使用前先设置好对话框与进度条。
QProgressDialog *pgd = new QProgressDialog(this);
pgd->setWindowTitle("写Flash");
pgd->setLabelText("写Flash数据" +QString::number(buffer_len/1024) + "kB,请稍候...");
pgd->setCancelButtonText("取消"); //退出按钮名字
pgd->setRange(0,flash_read_len-8); //进度条范围
pgd->setModal(true);
在循环中给值即可。
for(i=0; i<flash_read_len; i+=8)
{
//间隔更新进度条,否则所消耗时间长
if(i%1024 == 0 || i > flash_read_len-16)
{
pgd->setValue(i);
if(pgd->wasCanceled())
return ;
}
}