resizeColumnToContents() 不工作 Qt C++

Sjo*_*lon 2 c++ treeview qt

我有这个具有以下构建功能的 treeView 小部件:

void berichtenhistorie::DirectoryDisplay()
{
    QFileSystemModel *dirModel = new QFileSystemModel(this);
    dirModel->setRootPath("path");
    dirModel->setFilter(QDir::Files | QDir::NoDotAndDotDot | QDir::AllDirs);
    ui->treeView->setModel(dirModel);
    ui->treeView->setRootIndex(dirModel->index("path"));
    ui->treeView->hideColumn(1);
    ui->treeView->hideColumn(2);
    ui->treeView->setSortingEnabled(true);
    ui->treeView->sortByColumn(3);
    ui->treeView->resizeColumnToContents(0);
    ui->treeView->resizeColumnToContents(3);
}
Run Code Online (Sandbox Code Playgroud)

但是ui->treeView->resizeColumntoContents(#); 我没有收到任何错误,但它不会调整它的大小。它看起来像这样:
这是现在的样子

但这就是它的样子 这是它应该看起来的样子

我如何使其正常工作?
谢谢!

Ant*_*ias 5

我参与了一个涉及的项目,QTableWidget我使用 tablewidget 的标题来设置调整大小模式,查看QTreeView文档我可以看到它也有一个标题,那么这段代码应该适合你:

编辑:

如果您使用的是 Qt4:

ui->treeView->header()->setResizeMode(0, QHeaderView::ResizeToContents);
ui->treeView->header()->setResizeMode(3, QHeaderView::ResizeToContents);
Run Code Online (Sandbox Code Playgroud)

然后,如果您使用的是 Qt5:

ui->treeView->header()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
ui->treeView->header()->setSectionResizeMode(3, QHeaderView::ResizeToContents);
Run Code Online (Sandbox Code Playgroud)