1、概述
源码放在文章末尾

本地存储空间大小控件,反应电脑存储情况:

  1. 可自动加载本地存储设备的总容量/已用容量。
  2. 进度条显示已用容量。
  3. 支持所有操作系统。
  4. 增加U盘或者SD卡到达信号。

下面是demo演示:
《QT实用小工具·十》本地存储空间大小控件-LMLPHP

项目部分代码如下:

#ifndef DEVICESIZETABLE_H
#define DEVICESIZETABLE_H

/**
 * 本地存储空间大小控件
 * 1. 可自动加载本地存储设备的总容量/已用容量。
 * 2. 进度条显示已用容量。
 * 3. 支持所有操作系统。
 * 4. 增加U盘或者SD卡到达信号。
 */

#include <QTableWidget>

class QProcess;

#ifdef quc
class Q_DECL_EXPORT DeviceSizeTable : public QTableWidget
#else
class DeviceSizeTable : public QTableWidget
#endif

{
    Q_OBJECT

    Q_PROPERTY(QColor bgColor READ getBgColor WRITE setBgColor)
    Q_PROPERTY(QColor chunkColor1 READ getChunkColor1 WRITE setChunkColor1)
    Q_PROPERTY(QColor chunkColor2 READ getChunkColor2 WRITE setChunkColor2)
    Q_PROPERTY(QColor chunkColor3 READ getChunkColor3 WRITE setChunkColor3)

    Q_PROPERTY(QColor textColor1 READ getTextColor1 WRITE setTextColor1)
    Q_PROPERTY(QColor textColor2 READ getTextColor2 WRITE setTextColor2)
    Q_PROPERTY(QColor textColor3 READ getTextColor3 WRITE setTextColor3)

public:
    explicit DeviceSizeTable(QWidget *parent = 0);

private:
    QProcess *process;      //执行命令进程

    QColor bgColor;         //背景颜色
    QColor chunkColor1;     //进度颜色1
    QColor chunkColor2;     //进度颜色2
    QColor chunkColor3;     //进度颜色3

    QColor textColor1;      //文字颜色1
    QColor textColor2;      //文字颜色2
    QColor textColor3;      //文字颜色3

private slots:
    void readData();
    void checkSize(const QString &result, const QString &name);
    void insertSize(const QString &name, const QString &use, const QString &free, const QString &all, int percent);

public:
    //默认尺寸和最小尺寸
    QSize sizeHint() const;
    QSize minimumSizeHint() const;

    //获取和设置背景颜色
    QColor getBgColor() const;
    void setBgColor(const QColor &bgColor);

    //获取和设置进度颜色1
    QColor getChunkColor1() const;
    void setChunkColor1(const QColor &chunkColor1);

    //获取和设置进度颜色2
    QColor getChunkColor2() const;
    void setChunkColor2(const QColor &chunkColor2);

    //获取和设置进度颜色3
    QColor getChunkColor3() const;
    void setChunkColor3(const QColor &chunkColor3);

    //获取和设置文字颜色1
    QColor getTextColor1() const;
    void setTextColor1(const QColor &textColor1);

    //获取和设置文字颜色2
    QColor getTextColor2() const;
    void setTextColor2(const QColor &textColor2);

    //获取和设置文字颜色3
    QColor getTextColor3() const;
    void setTextColor3(const QColor &textColor3);

public Q_SLOTS:
    //载入容量
    void load();

Q_SIGNALS:
    void sdcardReceive(const QString &sdcardName);
    void udiskReceive(const QString &udiskName);
};

#endif // DEVICESIZETABLE_H

源码下载

04-04 03:00