QT学习之进度条

QT学习之进度条

1、简介

显示事件处理进度,有俩种形式,进度条形式与进度条对话框形式

2、 ui

QT学习之进度条_第1张图片

3、代码

3.1 头文件

private slots:
    void startProgress();

3.2 源文件

#include "QtWidgetsApplication.h"
#pragma execution_character_set("utf-8") 
#include 

QtWidgetsApplication::QtWidgetsApplication(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    setWindowTitle("进度条");

    connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(startProgress()));
}

void QtWidgetsApplication::startProgress()
{
    bool ok;
    int num = ui.file_num->text().toInt(&ok);
    if (ui.comboBox->currentIndex() == 0)
    {
        ui.progressBar->setRange(0, num);  // 设置进度条显示范围
        for (int i = 0; i < num + 1; i++)
        {
            ui.progressBar->setValue(i);
        }
    }
    else
    {
        // 创建一个进度条对话框
        QProgressDialog* qpd = new QProgressDialog(this);
        QFont font("楷体", 13);
        qpd->setFont(font);
        qpd->setWindowModality(Qt::WindowModal);  // 进度条对话框以模式方式进行,在显示时,
                                                  // 其余窗口不响应输入信号
        qpd->setMinimumDuration(4);   // 对话框出现的等待时间
        qpd->setWindowTitle("请等待"); // 设置标题
        qpd->setLabelText("Waiting"); // 设置标签
        qpd->setCancelButtonText("离开");  // 设置离开按钮文本
        qpd->setRange(0, num);  // 设置范围
        for (int i = 0; i < num + 1; i++)
        {
            qpd->setValue(i);
            if (qpd->wasCanceled())  // 如果按了离开键
            {
                return;
            }
        }

    }
}

4、结果展示

QT学习之进度条_第2张图片
QT学习之进度条_第3张图片

你可能感兴趣的:(qt,qt,学习,ui)