#include "progressdlg.h"
#include <QProgressDialog>
#include <QFont>
ProgressDlg::ProgressDlg(QWidget *parent)
: QDialog(parent)
{
//设置字体,标题
QFont font("ZYSong18030",12);
setFont(font);
setWindowTitle(tr("Progress"));
FileNum =new QLabel;
FileNum->setText(tr("文件数目:"));
FileNumLineEdit =new QLineEdit;
FileNumLineEdit->setText(tr("1000000"));
//选择显示方式
ProgressType =new QLabel;
ProgressType->setText(tr("显示类型:"));
comboBox =new QComboBox;
comboBox->addItem(tr("progressBar"));
comboBox->addItem(tr("progressDialog"));
progressBar =new QProgressBar;
starBtn =new QPushButton();
starBtn->setText(tr("开始"));
mainLayout =new QGridLayout(this);
mainLayout->addWidget(FileNum,0,0);
mainLayout->addWidget(FileNumLineEdit,0,1);
mainLayout->addWidget(ProgressType,1,0);
mainLayout->addWidget(comboBox,1,1);
mainLayout->addWidget(progressBar,2,0,1,2);
mainLayout->addWidget(starBtn,3,1);
//用于设置布局的边距
mainLayout->setMargin(15);
//用于设置布局中窗口部件之间的间距
mainLayout->setSpacing(10);
//建立联系
connect(starBtn,SIGNAL(clicked()),this,SLOT(startProgress()));
progressBar->setStyleSheet("QProgressBar {background-color: pink;border: 1px solid black;border-radius: 5px;height: 20px;} "
"QProgressBar::chunk {background-color: green;width: 20px;margin: 1px;}");
}
ProgressDlg::~ProgressDlg()
{
}
void ProgressDlg::startProgress()
{
bool ok;
//获取当前需要复制的文件数目,这里对应进度条的总步进值
int num =FileNumLineEdit->text().toInt(&ok);
if(comboBox->currentIndex()==0) //ProgressBar
{
progressBar->setRange(0,num);
for(int i=1;i<num+1;i++)
{
//QProgressBar的使用
progressBar->setValue(i);
}
}
else if(comboBox->currentIndex()==1) //ProgressDialog
{
//新建一个QProgressDialog对象
QProgressDialog *progressDialog=new QProgressDialog(this);
QFont font("ZYSong18030",12);
progressDialog->setFont(font);
//设置进度对话框采用模态方式进行显示,即显示进度的同时,其他窗口将不响应输入信号
progressDialog->setWindowModality(Qt::ApplicationModal);
//设置进度对话框出现需等待的时间,此处设定为 5 秒,默认为 4 秒
progressDialog->setMinimumDuration(5);
progressDialog->setWindowTitle(tr("Please Wait"));
progressDialog->setLabelText(tr("Copying..."));
progressDialog->setCancelButtonText(tr("Cancel"));
//设置进度对话框的步进范围
progressDialog->setRange(0,num);
for(int i=1;i<num+1;i++)
{
progressDialog->setValue(i);
//检测 "取消”按钮是否被触发,若触发则退出循环并关闭进度对话框
if(progressDialog->wasCanceled())
return;
}
}
}
QProgressBar的简单使用与样式优化实例工程源码
需积分: 0 128 浏览量
2024-01-10
17:09:45
上传
评论
收藏 4KB 7Z 举报
树欲静静而风不止止
- 粉丝: 181
- 资源: 7
最新资源
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见的
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见
- MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了丰富的SQL语句用于数据库的创建、查询、更新和管理 以下是一些常见的
- 基于Javascript的结婚请帖设计源码 - Invitation
- mysql语句大全及用法
- mysql语句大全及用法
- mysql语句大全及用法
- MySQL是一种广泛使用的开源关系型数据库管理系统
- MySQL是一种广泛使用的开源关系型数据库管理系统
- MySQL是一种广泛使用的开源关系型数据库管理系统
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈