15,629
社区成员




如题,各位大佬,QFileSystemModel重写后如何排序第一列呢?具体代码如下:
#include "filesystemmodel.h"
FileSystemModel::FileSystemModel(QObject *parent)
: QFileSystemModel(parent)
{
this->setRootPath(QString(""));
this->setFilter(QDir::Drives | QDir::AllDirs | QDir::NoDotAndDotDot | QDir::Dirs | QDir::Hidden|QDir::System);
this->sort(0, Qt::AscendingOrder);//排序无效
}
int FileSystemModel::columnCount(const QModelIndex &parent) const
{
Q_UNUSED(parent);
return 1; //默认只显示一列
}
QVariant FileSystemModel::data(const QModelIndex &index, int role) const
{
if(index.isValid())
{
if(role == Qt::DecorationRole)
{
return QVariant();
}
else if(role == Qt::DisplayRole)
{
if(this->fileInfo(index).isRoot())
{
return QDir::toNativeSeparators(QString("%1").arg(this->fileInfo(index).absolutePath()));
}
}
}
return QFileSystemModel::data(index, role);
}
具体效果如下:
有什么办法可以实现从C盘到H盘由上往下排序吗?利用this->sort(0, Qt::AscendingOrder);排序无效。欢迎各位大佬们指点一二, 小弟感激不尽!!