1、概述
源码放在文章末尾
本地存储空间大小控件,反应电脑存储情况:
- 可自动加载本地存储设备的总容量/已用容量。
- 进度条显示已用容量。
- 支持所有操作系统。
- 增加U盘或者SD卡到达信号。
下面是demo演示:
项目部分代码如下:
#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