如何使用 QFileSystemModel 在 QTableView 中显示 DotDot 路径?
How to show DotDot path in QTableView using QFileSystemModel?
我提前为我的英语道歉。在我简单的双面板文件管理器中,我有 QTableView
和 QFileSystemModel
作为模型。它正确显示文件和目录,但我希望它显示 DotDot 行以移动到当前目录的父级。设置 QFileSystemModel::filter(QDir::AllEntries | QDir::NoDot)
没有帮助,DotDot 仍然没有显示在 QTableView
中。以上所有内容都适用于 Windows 7 上的 Qt 5.9.1。但是当我在 Ubuntu 上构建应用程序时,它会正确显示 DotDot,并且 QFileSystemModel::filter()
可以根据其参数完美运行。我可以让它在 Windows 7 上运行还是它是一个错误?
这是我的代码的简化示例:
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();
使自己class继承自QFileSystemModel。并重新定义虚方法rowCount() 和data()。
这不是简单的方法,但可以很好地控制使用该模型显示的内容。当然,您可以添加 Dot 和 DotDot(甚至 DotDotDotDot :) )目录。
我提前为我的英语道歉。在我简单的双面板文件管理器中,我有 QTableView
和 QFileSystemModel
作为模型。它正确显示文件和目录,但我希望它显示 DotDot 行以移动到当前目录的父级。设置 QFileSystemModel::filter(QDir::AllEntries | QDir::NoDot)
没有帮助,DotDot 仍然没有显示在 QTableView
中。以上所有内容都适用于 Windows 7 上的 Qt 5.9.1。但是当我在 Ubuntu 上构建应用程序时,它会正确显示 DotDot,并且 QFileSystemModel::filter()
可以根据其参数完美运行。我可以让它在 Windows 7 上运行还是它是一个错误?
这是我的代码的简化示例:
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();
使自己class继承自QFileSystemModel。并重新定义虚方法rowCount() 和data()。 这不是简单的方法,但可以很好地控制使用该模型显示的内容。当然,您可以添加 Dot 和 DotDot(甚至 DotDotDotDot :) )目录。