博客
关于我
QT 任务栏进度条
阅读量:640 次
发布时间:2019-03-14

本文共 1991 字,大约阅读时间需要 6 分钟。

简述

我们下载东西的时候都会想知道自己下载多少了,还有多久可以下完,但是我们也不可能一直盯着程序中的进度条看,还要去做别的事。这时候任务栏进度条就有用了,我们可以在做别的事时只需要看任务栏进度条就能够知道下载的进度了,很多软件都有这样的功能,比如谷歌浏览器、迅雷。

                                                                      

Qt也可以实现这样的功能,使用QT自带的QWinTaskBarButton和QWinTaskBarProgress就可以实现这样的功能。

 


效果展示

 


代码实现

要使用QWinTaskBarButton和QWinTaskBarProgress需要先早pro文件中加入:

win32:QT += winextras

taskbarprogress.h文件

#ifndef TASKBARPROGRESS_H#define TASKBARPROGRESS_H#include 
#include
#include
#include
#include
namespace Ui {class TaskbarProgress;}class TaskbarProgress : public QMainWindow{ Q_OBJECTpublic: explicit TaskbarProgress(QWidget *parent = 0); ~TaskbarProgress(); void onButtonClicked(); void onTimeout();private: Ui::TaskbarProgress *ui; QTimer *timer; QWinTaskbarButton *windowsTaskbarButton; QWinTaskbarProgress *windowsTaskbarProgress;};#endif // TASKBARPROGRESS_H

taskbarprogress.cpp文件 

#include "taskbarprogress.h"#include "ui_taskbarprogress.h"TaskbarProgress::TaskbarProgress(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::TaskbarProgress){    ui->setupUi(this);    timer = new QTimer;    timer->setInterval(1000);     //设置时间间隔    //创建显示进度的任务栏按钮    windowsTaskbarButton = new QWinTaskbarButton(this);    connect(timer, &QTimer::timeout, this, &TaskbarProgress::onTimeout);    connect(ui->Btn_Start, &QAbstractButton::clicked, this, &TaskbarProgress::onButtonClicked);}TaskbarProgress::~TaskbarProgress(){    delete ui;}void TaskbarProgress::onButtonClicked() {    //将任务栏按钮关联到进度栏,假设进度栏是它自己的窗口    windowsTaskbarButton->setWindow(windowHandle());    windowsTaskbarProgress = windowsTaskbarButton->progress();    windowsTaskbarProgress->setRange(0, 100);    timer->start();}void TaskbarProgress::onTimeout() {    //当进度条的值发生变化时,更改任务栏中的进度值    windowsTaskbarProgress->setValue(windowsTaskbarProgress->value() + 20);    windowsTaskbarProgress->show();    if (windowsTaskbarProgress->value() > 99) {        windowsTaskbarProgress->setValue(0);        timer->stop();    }}
 

转载地址:http://geulz.baihongyu.com/

你可能感兴趣的文章
Mysql错误2003 -Can't connect toMySQL server on 'localhost'(10061)解决办法
查看>>
MySQL错误提示mysql Statement violates GTID consistency
查看>>
mysql错误:This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de
查看>>
mysql长事务
查看>>
mysql问题记录
查看>>
MySQL集群解决方案(1):MySQL数据库的集群方案
查看>>
MySQL集群解决方案(4):负载均衡
查看>>
MySQL集群解决方案(5):PXC集群
查看>>
MySQL面试宝典
查看>>
WAP短信:融合传统短信和互联网的新型通信方式
查看>>
mysql面试题学校三表查询_mysql三表查询分组后取每组最大值,mysql面试题。
查看>>
Mysql面试题精选
查看>>
MySQL面试题集锦
查看>>
mysql面试题,存储引擎InnoDB和MyISAM
查看>>
mysql面试题:为什么MySQL单表不能超过2000W条数据?
查看>>
mysql面试题:创建索引时会不会锁表?
查看>>
mysql面试题:高度为3的B+树可以存放多少数据?
查看>>
mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破
查看>>
mysql驱动、durid、mybatis之间的关系
查看>>
mysql驱动支持中文_mysql 驱动包-Go语言中文社区
查看>>