Не в состоянии отображать диски в QtreeView, используя QSystemStorageInfo

Я работаю над отображением всех локальных и съемных дисков моей системы, используя QSystemStorageInfo в QTreeView. Я написал код, в котором все диски, такие как C :, D: и т. Д., Попадают в раздел Local Drive, а SD_Card отображается в разделе Removable Drive. Вот код:

#include <QtSystemInfo/QSystemStorageInfo>

m_model = new QStandardItemModel(0,0);

QList<QStandardItem *> LocalItem;
LocalItem.insert(0,new QStandardItem("Local Drives"));
LocalItem.at(0)->setEditable(false);
m_model->insertRow(0,LocalItem);

QList<QStandardItem *> RemovableItem;
RemovableItem.insert(0,new QStandardItem("Removable Drives"));
RemovableItem.at(0)->setEditable(false);
m_model->insertRow(1,RemovableItem);

QStringList list = m_sysStorageInfo->logicalDrives(),listremovable,listlocal;
for(int i=0; i<list.count(); i++)
{
m_dtype = m_sysStorageInfo->typeForDrive(list[i]);
if ( m_dtype == QSystemStorageInfo::RemovableDrive)
{
listremovable<<list[i];
qDebug()<<listremovable;
}
else
{
listlocal<<list[i];
qDebug()<<listlocal;
}
}

for (int i = 0; i < listlocal.count(); i++)
{
QString myString = listlocal.at(i);

QStandardItem* Localchild = new QStandardItem(myString);
QStandardItem* LocalparentItem = m_model->item(0,0);
Localchild->setEditable(false);
LocalparentItem->appendRow(Localchild);
}

for (int i = 0; i < listremovable.count(); i++)
{
QString myString = listremovable.at(i);

QStandardItem* Removablechild = new QStandardItem(myString);
Removablechild->setEditable(false);
QStandardItem* RemovableparentItem = m_model->item(0,0);
RemovableparentItem->appendRow(Removablechild);
}

ui->PrimTreeView->setModel(m_model);

Заголовочный файл:

QSystemStorageInfo *m_sysStorageInfo;
QSystemStorageInfo::DriveType m_dtype;

Когда я запускаю приложение, оно дает мне C :, D: в моем локальном разделе и SD_Card под разделом Removable. Но когда я щелкаю диск C: или диск D:, он не отображает папки внутри него. Где я не прав ???

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]