返回顶部
首页 > 资讯 > 精选 >Qt如何获取电脑磁盘容量
  • 306
分享到

Qt如何获取电脑磁盘容量

2023-07-06 03:07:02 306人浏览 八月长安
摘要

这篇文章主要介绍了Qt如何获取电脑磁盘容量的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Qt如何获取电脑磁盘容量文章都会有所收获,下面我们一起来看看吧。项目中用到了监测某磁盘(如:C盘、D盘等)的总容量和可用容

这篇文章主要介绍了Qt如何获取电脑磁盘容量的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Qt如何获取电脑磁盘容量文章都会有所收获,下面我们一起来看看吧。

项目中用到了监测某磁盘(如:C盘、D盘等)的总容量和可用容量,查了一下,发现其实挺简单,调用一个windows自带的api:GetDiskFreeSpaceEx( ... )就可以解决。用Qt做了一个测试例子,如下所示。

另:测试发现,如果给定路径不存在(如程序中"F:\"),则获取不到信息;通常给定用以获取磁盘容量信息的路径为“C:\”、"D:\"等,但给定已存在路径(如程序中"D:\Test"),同样可以获取到该路径所属信息。

示例代码:

 #include "acquirediskspace.h"#include <QtWidgets/QApplication> int main(int arGC, char *argv[]){    QApplication a(argc, argv);    AcquiRediskSpace w;    w.show();    return a.exec();}
 #ifndef ACQUIREDISKSPACE_H#define ACQUIREDISKSPACE_H #include <QDialog> class QLineEdit; class AcquireDiskSpace : public QDialog{    Q_OBJECT public:    AcquireDiskSpace( QWidget *parent = 0 );    ~AcquireDiskSpace(); protected slots:    void slotDiskChanged( const QString& ); private:    void GetDiskSpace( QString strDisk, double& dTotalBytes, double& dFreeBytes ); private:    QLineEdit* m_pEdtTotalSpace;    QLineEdit* m_pEdtFreeSpace;}; #endif // ACQUIREDISKSPACE_H
 #include "acquirediskspace.h" #include <QLabel>#include <QLineEdit>#include <QPushButton>#include <QComboBox>#include <QGridLayout>#include <QMessageBox> #include "windows.h" AcquireDiskSpace::AcquireDiskSpace( QWidget *parent )    : QDialog( parent ){    setWindowFlags( Qt::WindowTitleHint );    resize( 400, 400 );    setStyleSheet( "QDialog{background:white;}" );     m_pEdtTotalSpace = new QLineEdit;    m_pEdtTotalSpace->setEnabled( false );    m_pEdtTotalSpace->setMinimumHeight( 30 );    m_pEdtFreeSpace = new QLineEdit;    m_pEdtFreeSpace->setEnabled( false );    m_pEdtFreeSpace->setMinimumHeight( 30 );     //Disk    QComboBox* pCmbDisk = new QComboBox;    pCmbDisk->addItem( "C:/" );    pCmbDisk->addItem( "D:/Test" );    pCmbDisk->addItem( "E:/" );    pCmbDisk->addItem( "F:/" );    pCmbDisk->addItem( "G:/" );    pCmbDisk->setMinimumHeight( 30 );     //Button    QPushButton* pBtnOK = new QPushButton( "OK" );    pBtnOK->setMinimumHeight( 30 );    QHBoxLayout* pBtnLayout = new QHBoxLayout;    pBtnLayout->addWidget( pBtnOK );     //MainLayout    QGridLayout* pMainLayout = new QGridLayout;    pMainLayout->addWidget( new QLabel( "Total:" ), 0, 0, Qt::AlignRight );    pMainLayout->addWidget( m_pEdtTotalSpace, 0, 1 );    pMainLayout->addWidget( new QLabel( "GB" ), 0, 2 );     pMainLayout->addWidget( new QLabel( "Free:" ), 1, 0, Qt::AlignRight );    pMainLayout->addWidget( m_pEdtFreeSpace, 1, 1 );    pMainLayout->addWidget( new QLabel( "GB" ), 1, 2 );    pMainLayout->addWidget( new QLabel( "Disk:" ), 2, 0, Qt::AlignRight );    pMainLayout->addWidget( pCmbDisk, 2, 1 );    pMainLayout->addLayout( pBtnLayout, 3, 1 );    setLayout( pMainLayout );     //connects    connect( pCmbDisk, SIGNAL( currentIndexChanged( const QString& ) ), this, SLOT( slotDiskChanged( const QString& ) ) );    connect( pBtnOK, SIGNAL( clicked() ), this, SLOT( accept() ) );     //Init    QString strDisk = pCmbDisk->currentText();    slotDiskChanged( strDisk );} AcquireDiskSpace::~AcquireDiskSpace(){ } void AcquireDiskSpace::slotDiskChanged( const QString& strDisk ){    double dTotalBytes, dFreeBytes;    GetDiskSpace( strDisk, dTotalBytes, dFreeBytes );    m_pEdtTotalSpace->setText( QString::number( dTotalBytes, 'f', 3 ) );    m_pEdtFreeSpace->setText( QString::number( dFreeBytes, 'f', 3 ) );} void AcquireDiskSpace::GetDiskSpace( QString strDisk, double& dTotalBytes, double& dFreeBytes ){    LPCWSTR lpcwstrDriver = (LPCWSTR)strDisk.utf16();    ULARGE_INTEGER lFreeBytesAvailable, lTotalBytesTemp, lTotalFreeBytes;     if( !GetDiskFreeSpaceEx( lpcwstrDriver, &lFreeBytesAvailable, &lTotalBytesTemp, &lTotalFreeBytes ) )    {        QMessageBox::warning( 0, "Warning", "Acquire Disk Space Failed !" );        dTotalBytes = -1;        dFreeBytes = -1;        return;    }     //unit : GB    dTotalBytes = lTotalBytesTemp.QuadPart / 1024.0 / 1024 / 1024;    dFreeBytes = lTotalFreeBytes.QuadPart / 1024.0 / 1024 / 1024;}

结果如下:

(1)C盘:

Qt如何获取电脑磁盘容量

(2)D盘:

Qt如何获取电脑磁盘容量

(3)F盘(F盘实际上并不存在,故获取不到,给了默认值-1,-1)

Qt如何获取电脑磁盘容量

关于“Qt如何获取电脑磁盘容量”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Qt如何获取电脑磁盘容量”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Qt如何获取电脑磁盘容量

本文链接: https://lsjlt.com/news/357544.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Qt如何获取电脑磁盘容量
    这篇文章主要介绍了Qt如何获取电脑磁盘容量的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Qt如何获取电脑磁盘容量文章都会有所收获,下面我们一起来看看吧。项目中用到了监测某磁盘(如:C盘、D盘等)的总容量和可用容...
    99+
    2023-07-06
  • Qt开发之获取电脑磁盘容量
    项目中用到了监测某磁盘(如:C盘、D盘等)的总容量和可用容量,查了一下,发现其实挺简单,调用一个Windows自带的API:GetDiskFreeSpaceEx( ... )就可以解...
    99+
    2023-05-15
    Qt获取电脑磁盘容量 Qt获取磁盘容量 Qt磁盘容量
  • Win11电脑磁盘如何分盘
    要将Win11电脑磁盘分盘,可以按照以下步骤进行操作:1. 打开“开始”菜单,点击“设置”图标打开设置窗口。2. 在设置窗口中,点击...
    99+
    2023-09-01
    Win11
  • qt如何获取lineedit的内容
    您可以使用`text()`方法来获取QLineEdit的内容。下面是一个例子:```QLineEdit *lineEdit = ne...
    99+
    2023-09-25
    qt
  • win10电脑磁盘如何清理
    清理Win10电脑磁盘的方法有以下几种:1. 清理临时文件:在Windows搜索栏中输入“磁盘清理”,选择要清理的磁盘(通常是C盘)...
    99+
    2023-09-01
    win10
  • 电脑win7如何分区磁盘
    新买的笔记本或者台式机,出厂状态下一般都只有一个分区,那我们如何在不重装系统的情况下,调整分区呢?下面一起来看看吧。1、通过控制面板-系统和安全,然后点击“创建并格式化硬盘分区”。2、之后会进入到“磁盘管理”页面。3、之后,右击选择分区,通...
    99+
    2023-07-15
  • 电脑发生磁盘读取错误如何解决
    本文小编为大家详细介绍“电脑发生磁盘读取错误如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“电脑发生磁盘读取错误如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。解决方法方法一:我们可以先根据系统提示...
    99+
    2023-06-30
  • 电脑磁盘分区如何合并
    今天小编给大家分享一下电脑磁盘分区如何合并的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先从电脑桌面左下脚开始里面进去找到...
    99+
    2023-06-28
  • 电脑磁盘损坏如何修复
    电脑磁盘损坏可能是由于物理损坏或逻辑错误引起的。修复方法如下:1. 物理损坏:如果磁盘受到物理损坏,例如硬盘掉落或机械故障,建议找专...
    99+
    2023-08-24
    电脑
  • 电脑无法读取源文件或磁盘如何解决
    电脑无法读取源文件或磁盘的问题可能有多种原因,以下是一些常见的解决方法:1. 检查连接:确保源文件或磁盘连接到电脑上的接口正确稳定。...
    99+
    2023-10-08
    电脑
  • 电脑安装系统磁盘读取错误如何解决
    电脑安装系统磁盘读取错误可能有多种原因,下面是一些常见的解决方法: 确认磁盘连接正常:检查磁盘连接线是否松动或损坏,尝试更换连接...
    99+
    2024-02-29
    电脑
  • 电脑中如何清理磁盘碎片
    这篇文章主要介绍电脑中如何清理磁盘碎片,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、打开计算机,右键选择需要清理的磁盘,点击属性。 二、在弹出的磁盘属性的“工具”选项卡下,点击“立即进行碎片整理”。三、...
    99+
    2023-06-28
  • 电脑u盘启动盘如何恢复隐藏分区容量
    本篇内容主要讲解“电脑u盘启动盘如何恢复隐藏分区容量”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“电脑u盘启动盘如何恢复隐藏分区容量”吧!u盘启动盘恢复隐藏分区方法:u盘启动盘恢复隐藏分区方法非...
    99+
    2023-07-01
  • 电脑磁盘被写保护如何解除
    本文小编为大家详细介绍“电脑磁盘被写保护如何解除”,内容详细,步骤清晰,细节处理妥当,希望这篇“电脑磁盘被写保护如何解除”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。使用组合快捷键win键+r键打开运行窗口,输入...
    99+
    2023-06-28
  • 电脑trustedinstaller权限如何获取
    这篇文章主要介绍“电脑trustedinstaller权限如何获取”,在日常操作中,相信很多人在电脑trustedinstaller权限如何获取问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”电脑trusted...
    99+
    2023-06-30
  • 电脑开机磁盘占用100%如何解决
    电脑开机磁盘占用100%的问题可能是由于以下几个原因导致的:1. 病毒或恶意软件:首先进行全面的杀毒检查,使用可靠的安全软件进行系统...
    99+
    2023-09-06
    电脑
  • 电脑不识别大容量移动硬盘如何解决
    如果电脑不识别大容量移动硬盘,可以尝试以下方法来解决问题:1. 检查连接:确保移动硬盘正确连接到电脑。可以尝试更换USB线或尝试连接...
    99+
    2023-10-09
    电脑
  • 电脑电池容量降低如何恢复
    电脑电池容量降低可能是由于一些常见原因,如长期使用、频繁充放电、过度放电等。要恢复电脑电池容量,可以尝试以下方法: 使用合适的充...
    99+
    2023-10-22
    电脑
  • win7电脑打不开本地磁盘如何解决
    今天小编给大家分享一下win7电脑打不开本地磁盘如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。按下组合键WIN+r打...
    99+
    2023-06-28
  • 电脑没有磁盘清理功能如何解决
    这篇“电脑没有磁盘清理功能如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“电脑没有磁盘清理功能如何解决”文章吧。原因:...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作