【问题标题】:How can I autoexpand an item in a QTreeView when it is filtered by QSortFilterProxyModel?当 QTreeView 被 QSortFilterProxyModel 过滤时,如何自动展开项目?
【发布时间】:2010-12-13 07:47:21
【问题描述】:

我有一个普通的 QTreeView、一个自定义的 QAbstractItemModel 和一个自定义的 QSortFilterProxyModel。

我重新实现了 QSortFilterProxyModel::filterAcceptsRow 以按照我想要的方式从我的模型中过滤项目,但是现在我希望在树视图中展开这些过滤的项目。

显而易见的解决方案是在找到接受的项目时从 QSortFilterProxyModel::filterAcceptsRow() 发出信号,然后将该信号连接到 QTreeView::expand()。

但是,QSortFilterProxyModel::filterAcceptsRow() 是 const,因此我无法从该方法内部发出信号。 QSortFilterProxyModel 没有任何其他信号可以帮助我.. 我开始认为我将不得不继承 QTreeView,我不想这样做(更少的代码 == 更好)。

那么,有什么方法可以自动扩展 filtermodel 接受的那些项目?

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    QTreeView 有一个“expandAll”槽,可以在设置模型后调用。我认为这应该做你想做的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 2018-04-02
      • 2013-10-03
      • 1970-01-01
      • 1970-01-01
      • 2019-11-20
      相关资源
      最近更新 更多