创建并更新QprogressBar

时间:2015-03-26 16:53:18

标签: c++ qt qdialog qprogressbar

我正在开发一款主要是文件浏览器的应用。我需要在删除文件时创建进度指示以向用户显示进度。

我已经创建了一个,但它很难看并且没有按预期工作。

以下是进度的外观

enter image description here

这不是很性感......我希望有一种取消图标,并且在进度指示器周围有一个更多空间的窗口,为什么不是一个文字说:1 / 10,2 / 10 ......

我遇到的第二个问题是进度条似乎无法正常工作。进展没有显现出来。

以下是使用的代码。 QProgressBar是我的DialogBox类中的一个方法。

void MyDialog::ProgressIndicator(uint32_t max_value) {

    //ProgressInd = new QProgressBar();
    ProgressInd.setRange(0,max_value);
    ProgressInd.setValue(0);
    ProgressInd.show();

}

void MyDialog::ProgressUpdate(uint32_t value) {
    ProgressInd.setValue(value);

}

void MyDialog::ProgressClose() {
    ProgressInd.close();
}

ProgressInd在头文件中定义如下:

QProgressBar ProgressInd;

我在我的代码中使用了ProgresBar:

    TreeBox->ProgressIndicator(item.count());
    for (int i=0; i<item.count();i++) {
        myItem = dynamic_cast<MyTreeWidgetItem*>(item[i]);
        if((myItem->item_id == INVALID) || (myItem->id == INVALID)) {
            /* Shouldn't happened as id must be filed at creation */
            /* safety mechanism */
            delete myItem;
        }
        else {
            error = m_device.DeleteFile(myItem_id);

            if(error == ERROR_NONE)
            {
                delete myItem;

            }
            else {
                TreeBox->NotificationBox("File(s) deletion Failed");
                TreeBox->ProgressClose();                    
                return;
            }
        }
        TreeBox->ProgressUpdate(i++);
    }
    TreeBox->ProgressClose();

0 个答案:

没有答案