zoukankan      html  css  js  c++  java
  • QFileSystemModel只显示名称,不显示size,type,modified

    Qt 提供的 QFileSystemModel可以提供文件目录树预览功能,但是预览的都自带了Name,size,type, modified等信息。我现在只想显示name这一列,不想显示size,type,modified的信息。

    解决办法

    办法1:修改QFileSystemModel

    写一个子类,继承自QFileSystemModel,然后在需要显示size,type,modified的地方,把这些信息屏蔽掉。我知道Qt的Model显示数据,主要是在data这个函数中,然后Model的列是通过columnCount这个函数返回的。所以我重写columnCount函数,只返回一列,这一列就是我们想要的名称。

    #include <QtGui/QApplication>
    #include <QFileSystemModel>
    #include <QTreeView>
    
    class MyFileSytemModel : public QFileSystemModel
    {
    public:
        //第1列显示名称,其他几列都屏蔽掉
        int columnCount(const QModelIndex &parent) const
        {
            return 1;
        }
    };
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    
        MyFileSytemModel* model = new MyFileSytemModel;
        model->setRootPath(QDir::currentPath());
    
        QTreeView* treeView = new QTreeView;
        treeView->setModel(model);
        treeView->setRootIndex(model->index(QDir::currentPath()));
        treeView->show();
    
        return a.exec();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    最后,来个截图。 
    这里写图片描述

    办法2:修改TreeView

    如果我能把TreeView的第2,3,4列隐藏,也可以达到我想要的效果。结果还真被我发现了QTreeView中有个函数角setColumnHidden,使用这个函数即可。

    #include <QtGui/QApplication>
    #include <QFileSystemModel>
    #include <QTreeView>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
    
        QFileSystemModel* model = new QFileSystemModel;
        model->setRootPath(QDir::currentPath());
    
        QTreeView* treeView = new QTreeView;
        treeView->setModel(model);
        treeView->setRootIndex(model->index(QDir::currentPath()));
        treeView->show();
        treeView->setColumnHidden(1, true);
        treeView->setColumnHidden(2, true);
        treeView->setColumnHidden(3, true);
    
        return a.exec();
    }

    https://blog.csdn.net/snail_hunan/article/details/75250992

  • 相关阅读:
    流量染色与gRPC服务托管 微服务协作开发、灰度发布之流量染色 灰度发布与流量染色
    http://www.cnblogs.com/sealedbook/p/6194047.html
    celery 原理
    修改织梦默认栏目页、文章页URL命名规则
    Dede首页幻灯版显示Bug修正
    DEDECMS5.7 首页和栏目页调用文章按权重排序
    dede文章摘要字数的设置方法
    DEDECMS登录后台慢的完美解决方案
    DedeCMS去掉友情链接中“织梦链投放”“织梦链”的方法
    删除dedecms5.7后台登陆验证码
  • 原文地址:https://www.cnblogs.com/findumars/p/9581635.html
Copyright © 2011-2022 走看看