QT windows平台下获取U盘 QComboBox显示U盘盘符

在windows平台下获取U盘信息,可以调用windows API函数比较方便。本来想用qt QDBusConnection 来写的,网上关于这方面的代码比较多,但按照提示的步骤来写的就是无法编译,我也不知道为什么。如果有知道的朋友,留言给我或者qq 1585519210联系

在windows平台下U盘检测采用windows事件来设计,废话少说,上代码!
#ifndef GETUSBDISKWIDGET_H
#define GETUSBDISKWIDGET_H

#include <QWidget>
#include <windows.h>
#include <winbase.h>
#include <winnls.h>
#include <dbt.h>
#include <QCoreApplication>
#include <QDebug>
#include <QString>
#include <QVector>
#include <QStringList>

namespace Ui {
    class GetUsbDiskWidget;
}

typedef struct USB_DISK_INFO
{
    QString DirPath;
    float TotalMemory;
    float FreeMemory;
}USB_DISK_INFO;

class GetUsbDiskWidget : public QWidget
{
    Q_OBJECT

public:
    explicit GetUsbDiskWidget(QWidget *parent = 0);
    ~GetUsbDiskWidget();
    void Init();
    void ScanHD();
    void AddDisk(QString &DiskName);
    void DeleteDisk(QString &DiskName);
    bool SearchDisk(QString &DiskName,int &iter);
    void GetMemorySize(USB_DISK_INFO & disk);
    void AddComboBoxItem(QString &item);
    void DeleteComboBoxItem(QString &item);
    bool winEvent(MSG *message, long *result);
    char FirstDriveFromMask (ULONG unitmask);
    USB_DISK_INFO GetCheckedDisk();


private:
    Ui::GetUsbDiskWidget *ui;  
    QVector<USB_DISK_INFO> usb_disk_info;
    USB_DISK_INFO CurrentUseDisk;

private slots:
    void on_comboBox_USB_currentIndexChanged(QString );
};

#endif // GETUSBDISKWIDGET_H

#include "getusbdiskwidget.h"
#include "ui_getusbdiskwidget.h"
#include <QTextCodec>

GetUsbDiskWidget::GetUsbDiskWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::GetUsbDiskWidget)
{
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("gb18030"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("gb18030"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
    ui->setupUi(this);   
    this->Init();
}

GetUsbDiskWidget::~GetUsbDiskWidget()
{
    delete ui;

}
//=================================================================================
//系统初始化
//=================================================================================
void GetUsbDiskWidget::Init()
{
   this->ScanHD();
   ui->comboBox_USB->clear();
   this->usb_disk_info.clear();
}
//=======================================================&#
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值