QFileSystemModel重写后如何排序第一列

lwei2 2023-05-19 10:04:39

如题,各位大佬,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);排序无效。欢迎各位大佬们指点一二, 小弟感激不尽!!

 

...全文
37 回复 打赏 收藏 转发到动态 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复

15,629

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告