博客
关于我
Qt学习笔记 QFileSystemModel 只显示名称
阅读量:227 次
发布时间:2019-03-01

本文共 2172 字,大约阅读时间需要 7 分钟。

 

通过修改表头,只显示一列

m_model = new QFileSystemModel();    m_model->setRootPath(QDir::currentPath());    ui->treeView->setModel(m_model);    ui->listView->setModel(m_model);    ui->tableView->setModel(m_model);    ui->treeView->setRootIndex(m_model->index(QDir::currentPath()));    QStringList list;    list.append("名称");//    list.append("大小");//    list.append("类型");//    list.append("修改日期");    QStandardItemModel *itemModel =new QStandardItemModel();    itemModel->setHorizontalHeaderLabels(list);    ui->treeView->header()->setModel(itemModel);

 

 

转自:

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

解决办法

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

#include 
#include
#include
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();}

最后,来个截图。 

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

#include 
#include
#include
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();}

--------------------- 
作者:snail_hunan 
来源:CSDN 
原文:https://blog.csdn.net/snail_hunan/article/details/75250992 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

你可能感兴趣的文章
Nmap渗透测试指南之指纹识别与探测、伺机而动
查看>>
Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
查看>>
NMAP网络扫描工具的安装与使用
查看>>
NMF(非负矩阵分解)
查看>>
nmon_x86_64_centos7工具如何使用
查看>>
NN&DL4.1 Deep L-layer neural network简介
查看>>
NN&DL4.3 Getting your matrix dimensions right
查看>>
NN&DL4.7 Parameters vs Hyperparameters
查看>>
NN&DL4.8 What does this have to do with the brain?
查看>>
nnU-Net 终极指南
查看>>
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
NO 157 去掉禅道访问地址中的zentao
查看>>
no available service ‘default‘ found, please make sure registry config corre seata
查看>>
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
查看>>
no connection could be made because the target machine actively refused it.问题解决
查看>>
No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
查看>>
No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
查看>>
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
查看>>
No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
查看>>