博客
关于我
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/

你可能感兴趣的文章
Netty基础—7.Netty实现消息推送服务二
查看>>
Netty基础—8.Netty实现私有协议栈一
查看>>
Netty基础—8.Netty实现私有协议栈二
查看>>
Netty多线程 和 Redis6 多线程对比
查看>>
Netty学习总结(1)——Netty入门介绍
查看>>
Netty学习总结(2)——Netty的高性能架构之道
查看>>
Netty学习总结(3)——Netty百万级推送服务
查看>>
Netty学习总结(4)——图解Netty之Pipeline、channel、Context之间的数据流向
查看>>
Netty学习总结(5)——Netty之TCP粘包/拆包问题的解决之道
查看>>
Netty学习总结(6)——Netty使用注意事项
查看>>
Netty实现Http服务器
查看>>
Netty客户端断线重连实现及问题思考
查看>>
Netty工作笔记0001---Netty介绍
查看>>
Netty工作笔记0002---Netty的应用场景
查看>>
Netty工作笔记0003---IO模型-BIO-Java原生IO
查看>>
Netty工作笔记0004---BIO简介,介绍说明
查看>>
Netty工作笔记0005---NIO介绍说明
查看>>
Netty工作笔记0006---NIO的Buffer说明
查看>>
Netty工作笔记0007---NIO的三大核心组件关系
查看>>
Netty工作笔记0008---NIO的Buffer的机制及子类
查看>>