《QT实用小工具·十》本地存储空间大小控件

文章介绍了如何使用QTableWidget创建一个本地存储空间监控控件,它能自动加载并显示U盘、SD卡等设备的容量信息,包括总容量、已用容量和进度条。还展示了相关代码和信号槽的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

  1. 可自动加载本地存储设备的总容量/已用容量。
  2. 进度条显示已用容量。
  3. 支持所有操作系统。
  4. 增加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

源码下载

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦回阑珊

一毛不嫌多,一分也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值