Qt实战案例(6)——进度条对话框的实现(QProgressDialog)

一、项目介绍

很多情况下加载应用程序时都会显示一个进度条对话框,在程序完全加载完毕后消失。Qt中提供了QProgressDialog类实现了在程序加载过程中显示进度条对话框的功能。
本文以加载Excel文件为例对其进行基本介绍。

二、项目基本配置

新建一个Qt项目,完成项目创建。
项目内容参考:Qt实战案例(4)——利用Qt读取Excel表格

三、UI界面设计

UI界面参考读取Excel表格的UI界面。

四、主程序实现

4.1 mainwindow.h头文件

同样参考读取Excel表格。
引入相关的类:

#include <QProgressDialog>

private:
	...
    QProgressDialog progressDialog;

4.2 mainwindow.cpp源文件

源文件读取Excel相关内容同样可以参考Qt实战案例(4)。

选择文件按钮on_select_clicked中添加如下代码:

progressDialog.setWindowTitle("progress dialog test");//对话框标题
progressDialog.setLabelText("wait...");//对话框文本
progressDialog.setCancelButtonText("cancel");//设置取消按钮
progressDialog.setRange(1,50);//设置进度条范围
progressDialog.setModal(true);//以模态方式弹出对话框
//progressDialog.autoClose();
progressDialog.showNormal();

然后在读取行列值后添加如下代码【假设i有10行,j有5行】:

for (int j=1;j<=10;++j){
        for(int i = 1;i<=5;i++){
        progressDialog.setValue((j-1)*10+i);//设置进度条的值
        ...
        //设置点击取消按钮的响应操作
		if(progressDialog.wasCanceled()){//取消为true
            progressDialog.reset();
            break;
        	}
        }
}

五、效果演示

在这里插入图片描述

参考:

  1. https://blog.csdn.net/dongdong_csdn/article/details/103915162
  2. http://blog.sina.com.cn/s/blog_7cd29e1f0102x0n9.html

ok,以上便是文章的全部内容了,如果对你有所帮助,记得点个赞哟!

QProgressDialogQT中的一个类,用于显示进度对话框。它可以在长时间运行的操作中显示进度信息,并提供一个取消按钮。 在Python中,可以使用QProgressDialog来创建和使用进度对话框。可以设置对话框的标题、进度条的标签、最小值和最大值等属性。可以使用setValue()方法来更新进度条的值,并使用wasCanceled()方法来检查用户是否取消了操作。 QProgressDialog有两种使用方法:模态和非模态。模态对话框会阻塞程序的运行,直到用户关闭对话框或操作完成。非模态对话框则不会阻塞程序的运行,可以在后台执行其他任务。 以下是QProgressDialog的一个简单示例: progress = QProgressDialog("Copying files...", "Abort Copy", 0, numFiles, self) progress.setWindowModality(Qt.WindowModal) for i in range(0, numFiles): progress.setValue(i) if progress.wasCanceled(): break #... copy one file progress.setValue(numFiles) 在上面的例子中,创建了一个标题为"Copying files..."的进度对话框,进度范围为0到numFiles。然后在循环中使用setValue()方法更新进度条的值,并使用wasCanceled()方法检查是否取消。如果用户点击了取消按钮,就会跳出循环。最后使用setValue()方法将进度条设置为最大值,表示操作已完成。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [实战PyQt5:61进度对话框QProgressDialog](https://blog.csdn.net/seniorwizard/article/details/110004247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [15-窗口、窗口控件、对话框以及相关功能类-进度对话框QProgressDialog](https://blog.csdn.net/qq_40597070/article/details/131037566)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wendy_ya

您的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值