本文共 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();}
#include--------------------- 作者:snail_hunan 来源:CSDN 原文:https://blog.csdn.net/snail_hunan/article/details/75250992 版权声明:本文为博主原创文章,转载请附上博文链接!#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();}