如何使用QFileSystemModel在QTableView中显示DotDot路径?

时间:2017-11-21 14:27:55

标签: qt qtableview qfilesystemmodel

我提前为我的英语道歉。在我的简单双面板文件管理器中,我将QTableViewQFileSystemModel作为模型。它正确显示文件和目录,但我希望它显示DotDot行以移动到当前目录的父目录。设置QFileSystemModel::filter(QDir::AllEntries | QDir::NoDot)没有帮助,DotDot仍然不会显示在QTableView中。以上所有内容对于Windows 7上的Qt 5.9.1都是如此。但是当我在Ubuntu上构建应用程序时,它正确地显示了DotDot,并且QFileSystemModel::filter()完全依赖于它的参数。我能够在Windows 7上运行它还是一个bug? 这是我的代码的简化示例:

    QTableView *tableView = new QTableView;
    QFileSystemModel *fsModel = new QFileSystemModel;
    fsModel->setRootPath(QDir::rootPath());
    fsModel->setFilter(QDir::AllEntries | QDir::NoDot);
    tableView->setModel(fsModel);
    QObject::connect(tableView, &QTableView::doubleClicked, tableView, &QTableView::setRootIndex);
    tableView->show();

1 个答案:

答案 0 :(得分:0)

创建自己继承自QFileSystemModel的类。并重新定义虚拟方法rowCount()和data()。 这不是一种简单的方法,但可以很好地控制与该模型一起显示的内容。当然你可以添加Dot和DotDot(甚至DotDotDotDot :))目录。