如何在QTreeView中显示所有子项?

如何在QTreeView中显示所有子项?,qt,qtreeview,Qt,Qtreeview,我尝试从Qt创建一个QTreeView作为示例 当我们单击每个父项之前的三角形时,将显示子项 在我的例子中,我将这一行添加到树视图中 myTreeView->setRootIsDecorated(false); 因此,在每个父项之前不再有三角形 但子项也不再显示 我的要求是: 禁用每个父项前的三角形 显示树中的所有项目,包括父项和子项 如何操作?根据注释,您可以通过调用 请注意,在将子项添加到模型时可能需要再次调用它,这取决于模型的大小,可能会成为性能瓶颈 作为替代方案,最好从QTre

我尝试从Qt创建一个QTreeView作为示例

当我们单击每个父项之前的三角形时,将显示子项

在我的例子中,我将这一行添加到树视图中

 myTreeView->setRootIsDecorated(false);
因此,在每个父项之前不再有三角形

但子项也不再显示

我的要求是:

禁用每个父项前的三角形 显示树中的所有项目,包括父项和子项
如何操作?

根据注释,您可以通过调用

请注意,在将子项添加到模型时可能需要再次调用它,这取决于模型的大小,可能会成为性能瓶颈

作为替代方案,最好从QTreeView继承并重写该成员


这对于大型车型应该会有更好的性能。

这就是您想要的吗?@G.M:非常感谢!:让舒尔在每次更改型号时调用该方法data@G.M.我认为将您的解决方案作为一个答案发布是很有用的,这样问题就可以结束,并为未来的访问者提供良好的文档记录
myTreeView->expandAll();
virtual void MyTreeView::rowsInserted (const QModelIndex &parent, int start, int end) override
  {

    /*
     * Let the base class do what it has to.
     */
    QTreeView::rowsInserted(parent, start, end);

    /*
     * Make sure the parent model index is expanded.  If it already
     * is expanded then the following should just be a noop.
     */
    expand(parent);
  }