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

原文地址:https://www.cnblogs.com/findumars/p/9581635.html

时间: 2024-10-03 15:48:07

QFileSystemModel只显示名称,不显示size,type,modified的相关文章

编绎显示Unknown type name “CGFloat”等 错误解决方法

一.编绎显示Unknown type name "CGFloat" 等 错误解决方法 将Compile Sources As 改为 Objective-C++ 二.如果是extern const引起的.直接加头文件 #import <UIKit/UIKit.h>

WinForm控件TreeView 只部分节点显示 CheckBox

WinForm控件TreeView 只部分节点显示  CheckBox 用过asp.net的应该知道,要在treeview中实现上述功能可以使用ShowCheckBox 属性指定那些节点显示checkbox哪些不显示,可是winform中的treeview只提供一个ShowCheckBoxes 属性,要么全部节点显示checkbox,要不全部不显示,而指定节点没有ShowCheckBox 属性,下面就在winform的treeview中实现BS对应CheckBox 属性的功能  方法1: a) 

编绎显示Unknown type name &ldquo;CGFloat&rdquo; 错误解决方法

一.编绎显示Unknown type name "CGFloat"  错误解决方法   将Compile Sources As 改为 Objective-C 二.如果是extern const引起的.直接加头文件 #import <UIKit/UIKit.h>

编绎显示Unknown type name “CGFloat” 错误解决方法

将Compile Sources As 改为 Objective-C++ 二.如果是extern const引起的.直接加头文件 #import <UIKit/UIKit.h>

html中去掉文本框(input type=&quot;text&quot;)的边框或只显示下边框

去掉: <input   type="text"   name="textfield"   style="border:0px;">只留下边框: <input type="text" style="BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: solid&

解决python fs(filesystem)库在连接FTP服务器时无法显示文件目录的问题

本文由Markdown语法编辑器编辑完成. 1. 问题提出: 目前有一个需求是:医院的影像数据是存储在FTP服务器上的,医院提供了连接该FTP服务器的host, user, password等参数.(注:该ftp服务是部署在windows操作系统的IIR服务上) 采用的python库是fs(filesystem2)的第三方库.fs==2.0.23版本. 在根据提供的参数,可以正常的连接到该ftp服务器,但是在显示该ftp服务器下的文件目录时,却显示为空.但是,该ftp服务器下的确是有文件夹的.

input 的 size 和 maxlength 的区别

size 属性规定输入字段的宽度. 对于 <input type="text"> 和 <input type="password">,size 属性定义的是可见的字符数.而对于其他类型,size 属性定义的是以像素为单位的输入字段宽度. 由于 size 属性是一个可视化的设计属性,我们推荐您使用 CSS 来代替它. 输入框只显示size个可见的字符,但你可以输入'无数'多字符内容. maxlength 属性规定输入字段的最大长度,以字符个数计

Android中通过反射来设置显示时间

这个Toast的显示在Android中的用途还是很大的,同时我们也知道toast显示的时间是不可控的,我们只能修改他的显示样式和显示的位置,虽然他提供了一个显示时间的设置方法,但是那是没有效果的(后面会说到),他有两个静态的常量Toast.SHORT和Toast.LONG,这个在后面我会在源码中看到这个两个时间其实是2.5s和3s.那么我们如果真想控制toast的显示时间该怎么办呢?真的是无计可施了吗?天无绝人之路,而且Linux之父曾经说过:遇到问题就去看那个操蛋的源代码吧!!下面就从源代码开

ajax“显示弹窗详情”和“删除”功能练习

1.查看详细信息,以弹窗的形式显示,使用ajax 2.批量删除 “查询”功能可以参考前面的文章,这里只讲解ajax“显示弹窗详情”和“删除”功能 第一:在body中的代码 <title>ajax汽车网页查询</title> <script src="jquery-2.0.0.min.js"></script> <script type="text/javascript" src="tanchuang.j