QT--进度条

提示:本文为学习记录,若有错误,请联系作者,谦虚受教。


前言

因为淋过雨,所以想为别人撑把伞。


一、QT的进度条分类

Qt提供了两种显示进度条的方式:
(1)一种是QProgressBar,提供了一种横向或者纵向显示进度的控件表示方式,用来描述任务的完成情况;
(2)另一种是QProgressDialog,提供了一种针对慢速过程的进度对话框表示方式,用于描述任务完成的进度情况。标准的进度条对话框包括一个进度显示条、一个取消按钮及一个标签。

二、QT进度条的基本用法

在这里插入图片描述

三、读取方向

在这里插入图片描述

四、QProgressBar的相关实现代码

头文件

#include <QProgressBar> 

.cpp文件

//sendCnt是发送的次数,若将其设置成setRange(0,sendCnt),到达sendCnt时自动计算到100%
for(int i=0;i<sendCnt;i++){
     ui->progressBar->setRange(0,sendCnt);//最小值和最大值
     ui->progressBar->setValue(i+1);//在循环中,设置当前进度条的运行值
}

五、文本显示

double dProgress = (m_pProgressBar->value() - m_pProgressBar->minimum()) * 100.0  / (m_pProgressBar->maximum() - m_pProgressBar->minimum());
 // 百分比计算公式  
  m_pProgressBar->setFormat(QString::fromLocal8Bit("当前进度为:%1%").arg(QString::number(dProgress, 'f', 1)))  

六、QProgressBar实现效果

总结

善于总结,多进一步。

  • 33
    点赞
  • 149
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
下面是一个使用Qt Widgets创建进度条和按钮的示例程序: ```cpp #include <QProgressBar> #include <QPushButton> #include <QVBoxLayout> #include <QTimer> class ProgressBar : public QWidget { public: ProgressBar(QWidget *parent = nullptr) : QWidget(parent) { // 创建进度条和按钮控件 progress_bar = new QProgressBar; progress_bar->setRange(0, 100); button = new QPushButton("Start"); // 建立布局 QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(progress_bar); layout->addWidget(button); setLayout(layout); // 创建计时器 timer = new QTimer(this); connect(timer, &QTimer::timeout, this, &ProgressBar::on_timeout); // 进度条默认停止 progress_bar->setValue(0); button->setText("Start"); // 连接按钮的点击事件 connect(button, &QPushButton::clicked, this, &ProgressBar::on_button_click); } private slots: void on_button_click() { if (timer->isActive()) { // 如果计时器在运行,停止计时器,停止进度条更新 timer->stop(); progress_bar->setValue(0); button->setText("Start"); } else { // 否则,启动计时器,开始更新进度条 timer->start(100); button->setText("Stop"); } } void on_timeout() { // 进度条更新 int value = progress_bar->value() + 1; if (value > 100) { // 进度条更新完成,停止计时器,按钮控件信息显示finished timer->stop(); button->setText("Finished"); } else { progress_bar->setValue(value); } } private: QProgressBar *progress_bar; QPushButton *button; QTimer *timer; }; ``` 在这个示例程序中,我们创建了一个ProgressBar类,继承自QWidget。在ProgressBar类的构造函数中,我们创建了一个QProgressBar和一个QPushButton控件,并将它们添加到一个QVBoxLayout布局中。我们还创建了一个QTimer计时器,用于每100毫秒更新进度条。在on_button_click方法中,我们检查计时器是否处于活动状态,并根据情况启动或停止计时器。在on_timeout方法中,我们检查进度条的值是否达到100。如果是,我们停止计时器,并将按钮控件信息显示为finished。否则,我们将进度条的值增加1。 此外,我们使用了setRange方法来设置进度条的最小和最大值。你可以根据需要调整这些值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值