gpt4 book ai didi

c++ - QTreeView 与 QFileSystemModel : How can I remove all columns except "Name"?

转载 作者:搜寻专家 更新时间:2023-10-31 00:11:47 27 4
gpt4 key购买 nike

当我在 Qt5 中处理与文件管理器非常相似的东西时,我尝试实现一个非常基本的 TreeView ,只显示目录名称而没有任何其他信息。但是,(似乎)QTreeView 不允许我决定要显示哪些列。

这是我所拥有的:

// ...
QString m_path = "C:/Users/mine";

dirModel = new QFileSystemModel(this);
dirModel->setFilter(QDir::NoDotAndDotDot | QDir::AllDirs);
dirModel->setRootPath(m_path);

ui->treeView->setModel(dirModel);
// ...

现在我的 QTreeView 显示更多信息和名称,比如大小等;然而,这不是期望的行为。

headerVisible 设置为 false 会删除我的 QTreeView 的“标题”,这没问题,但我如何才能完全删除其他列?我试过:

ui->treeView->hideColumn(1);

只是为了测试它是否有效,但它并没有改变任何事情。

最佳答案

QTreeView* treeView = new QTreeView(centralWidget());
QFileSystemModel* fsModel = new QFileSystemModel(treeView);
fsModel->setFilter(QDir::NoDotAndDotDot | QDir::AllDirs);
fsModel->setRootPath("/home/user");
treeView->setModel(fsModel);
// first column is the name
for (int i = 1; i < fsModel->columnCount(); ++i)
treeView->hideColumn(i);

QHBoxLayout* hLayout = new QHBoxLayout(centralWidget());
hLayout->addWidget(treeView);

另一种方法(PyQt 但逻辑仍然相同):PyQt: removing unnecessary columns

关于c++ - QTreeView 与 QFileSystemModel : How can I remove all columns except "Name"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32763097/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com