首页| 论坛| 消息

标题:QFileSystemModel+QTreeView如何让目录树只显示本地磁盘,不显示外部存储设备?
作者:lwei24
日期:2023-05-05 18:34
内容:

如题,QFileSystemModel+QTreeView如何实现只显示本地磁盘,不显示外部存储设备的目录树。各位大佬们,如下
//frmain.cpp
FrmMain::FrmMain(QWidget *parent) : QMainWindow(parent)
{
m_pTreeView = new QTreeView(this);
dir = new QFileSystemModel(this);
dir->setReadOnly(false);
dir->setRootPath(QDir::currentPath());
m_usbModel = new USBDriveFilterProxyModel(this);
m_usbModel->setSourceModel(dir);
m_usbModel->setDynamicSortFilter(true);
m_pTreeView->setModel(m_usbModel);
m_pTreeView->header()->setStretchLastSection(true);
m_pTreeView->header()->setSortIndicatorShown(true);
m_pTreeView->setHeaderHidden(true);
m_pTreeView->hideColumn(1);
m_pTreeView->hideColumn(2);
m_pTreeView->hideColumn(3);
m_pTreeView->sortByColumn(0, Qt::DescendingOrder);
m_pTreeView->collapseAll();
m_pTreeView->resizeColumnToContents(0);
this->setCentralWidget(m_pTreeView);
}//usbdrivefilter.cpp
#include "usbdrivefilter.h"
#include
USBDriveFilterProxyModel::USBDriveFilterProxyModel(QObject *parent) :
QSortFilterProxyModel(parent)
{
getMountedRemovables();
// will eventually also register for changes to mounted removables
// but need to get passed my current issue of not displaying only USBs.
}
bool USBDriveFilterProxyModel::filterAcceptsRow(int sourceRow,
&nbs ..


#1 [苏宇杰 12-26 14:53]
获取到盘符的时候是可以查看该驱动的链接的,就像用来区分你电脑上的网盘和本地盘区别一样。

回复 发表
主题 版块