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

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

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

    WinForm控件TreeView 只部分节点显示  CheckBox 用过asp.net的应该知道,要在treeview中实现上述功能可以使用ShowCheckBox 属性指定那些节点显示check ...

  2. 关于mysql中使用聚合函数结果集为空,仍显示size为1,所有元素为Null问题的解决办法

    转自:https://www.2cto.com/database/201806/757632.html 1.不使用聚合函数sql: select * from sys_role_data a left ...

  3. 【转】elasticsearch中字段类型默认显示{ "foo": { "type": "text", "fields": { "keyword": {"type": "keyword", "ignore_above": 256} }

    官方原文链接:https://www.elastic.co/cn/blog/strings-are-dead-long-live-strings 转载原文连接:https://segmentfault ...

  4. 利用定时器实时显示<input type="range"/>的值

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. PPT幻灯片放映不显示备注,只让备注显示在自己屏幕上-投影机 设置

    无论是老师或是讲师还是即将要演讲的人,在讲课之前一定会做好课件,到哪一页该讲哪些内容,到哪里该如何去讲等等.那么一般的讲师会将这些课件存放到哪里呢?是用个书本记载下来呢,还是直接存放到电脑上呢?其实本 ...

  6. bootstrap中datetimepicker只选择月份显示1899问题

    直接修改bootstrap-datetimepicker.js中 update: function () { var date, fromArgs = false; if (arguments &am ...

  7. html中去掉文本框(input type="text")的边框或只显示下边框

    去掉: <input   type="text"   name="textfield"   style="border:0px;"&g ...

  8. AD域-让共享目录只显示用户有权限访问的文件夹

    问题: 在AD域中,我们一般都会用到共享,如果有很多部门,我们可能还会按部门.职位配置权限.比如CSD,IT,PA等,但文件夹一多,用户看着就头大,而且用户没权限访问的文件夹误点击进去还会提示无权限访 ...

  9. android应用程序fps meter[帧数显示]的分析 —— 浅谈root的风险 (3)

    上节已经详细说了下注入过程,最后寄生进程在宿主进程中下了个蛋,这下完的蛋有什么作用呢?接下来再具体分析一下. lib0的感染过程分析 对于本例注入的so动态库,首先看一下so的符号: $ readel ...

随机推荐

  1. 如何用ajax写分页查询(以留言信息为例)-----2017-05-17

    要写分页,首先你得清楚,一页你想显示多少条信息?如何计算总共显示的页数? 先说一下思路: (1)从数据库读取数据,以chenai表为例,读取所有留言信息.并能够实现输入发送者,可以查询该发送者的留言总 ...

  2. js判读周末以及节假日

    两个链接,搞定! http://bbs.csdn.net/topics/10417668 http://www.jb51.net/article/131660.htm

  3. 工厂方法模式(Product)C++实现

    意图:定义一个用于创建对象的接口,让子类觉定实例化哪一个类. 适用性:1.一个类不知道它必须创建的对象的时候. 2.一个类希望由它的子类指定它所创建的对象的时候. 3.当类将创建对象的职责委托给多个帮 ...

  4. 豆瓣项目(用react+webpack)

    用豆瓣电影api的项目 电影列表组件渲染 步骤: 1. 发送Ajax请求 1.1 在组件的componentWillMount这个生命周期钩子中发送请求 1.2 发送ajax XMLHttpReque ...

  5. javascript学习中自己对作用域和作用域链理解

    在javascript学习中作用域和作用域链还是相对难理解些,下面我关于javascript作用域和作用域链做一下详细介绍,给各位初学者答疑解惑. 首先我们介绍一下什么是作用域?  从字面上理解就是起 ...

  6. 在AndroidManifest(清单文件)中注册activity(活动)及配置主活动、更改App图标、App名称、修改隐藏标题栏

    打开app/src/main/AndroidManifest. <?xml version="1.0" encoding="utf-8"?> < ...

  7. 线性表结构的Java实现

    一.线性表的抽象数据类型表述 线性表的结构简单,长度允许动态增长或搜索:可以对线性表中的任何数据元素进行访问和查找:允许进行数据的插入和删除操作:求线性表中的指定数据的前驱和后继:合并线性表以及拆分线 ...

  8. ANN:DNN结构演进History—LSTM_NN

    前言 语音识别和动作识别(Action.Activities)  等一些时序问题,通过微分方式可以视为模式识别方法中的变长模式识别问题.语音识别的基元为音素.音节,字母和句子模式是在时间轴上的变长序列 ...

  9. 超实用的JavaScript代码段

    1. 判断日期是否有效 JavaScript中自带的日期函数还是太过简单,很难满足真实项目中对不同日期格式进行解析和判断的需要.JQuery也有一些第三方库来使日期相关的处理变得简单,但有时你可能只需 ...

  10. 从无到有创建一个grunt项目

    在安装好grunt的前提下创建一个grunt的项目: 1.首先创建一个项目文件 就叫grunt-project 2.进入这个文件 创建一个index.html 在创建一个js文件,进去创建一个inde ...