QTreeView显示目录

时间:2015-12-16 04:53:36

标签: c++ qt

我目前正在尝试制作一个QTreeView来显示计算机上该文件夹的内容。但是,我遇到了一些奇怪的问题。和..显示在树视图中,我不希望这种情况发生。我怎么想禁用显示。和...在树视图中?

https://developer.mozilla.org/en-US/docs/Web/API/FileReader

以下是QTreeView的代码。

model = new QDirModel(this);
model->setReadOnly(true);
model->setSorting(QDir::DirsFirst | QDir::IgnoreCase | QDir::Name);
model->setFilter(QDir::Dirs);

ui->treeView->setModel(model);

// expand to D: Directory
QModelIndex index = model->index("D:/");
ui->treeView->expand(index);
ui->treeView->scrollTo(index);
ui->treeView->setCurrentIndex(index);
ui->treeView->resizeColumnToContents(0);

2 个答案:

答案 0 :(得分:1)

最后找出答案:

model->setFilter(QDir::Dirs | QDir::NoDotAndDotDot);

使用以下内容无效,因为可以在每个文件夹上展开树视图:

model->setFilter(QDir::Dirs);
model->setFilter(QDir::NoDotAndDotDot);

答案 1 :(得分:0)

你看看这个吗? 这是与Qt创建者一起发布的标准Qt示例,它们与您想要做的完全相同。

int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);

        QFileSystemModel model;
        model.setFilter( QDir::Dirs | QDir::NoDotAndDotDot );
        model.setRootPath("");
        QTreeView tree;
        tree.setModel(&model);

        // Demonstrating look and feel features
        tree.setAnimated(false);
        tree.setIndentation(20);
        tree.setSortingEnabled(true);

        tree.setWindowTitle(QObject::tr("Dir View"));
    #if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAEMO_5)
        tree.showMaximized();
    #else
        tree.resize(640, 480);
        tree.show();
    #endif

        return app.exec();
    }