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_OBJECTQ_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; //进度颜色1QColor chunkColor2; //进度颜色2QColor chunkColor3; //进度颜色3QColor textColor1; //文字颜色1QColor textColor2; //文字颜色2QColor textColor3; //文字颜色3private 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);//获取和设置进度颜色1QColor getChunkColor1() const;void setChunkColor1(const QColor &chunkColor1);//获取和设置进度颜色2QColor getChunkColor2() const;void setChunkColor2(const QColor &chunkColor2);//获取和设置进度颜色3QColor getChunkColor3() const;void setChunkColor3(const QColor &chunkColor3);//获取和设置文字颜色1QColor getTextColor1() const;void setTextColor1(const QColor &textColor1);//获取和设置文字颜色2QColor getTextColor2() const;void setTextColor2(const QColor &textColor2);//获取和设置文字颜色3QColor 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