Должен ли я использовать QAbstractItemModel dataChanged для родительского узла только в древовидной модели

#c #qt #model-view-controller

#c #qt #model-view-controller

Вопрос:

Я пишу QAbstractItemModel, представляющий дерево.

После нескольких тестов я заметил, что, когда dataChanged передается для родительского узла, подключенный QTreeView также обновит все дочерние элементы этого узла. Хотя я ожидал, что dataChanged также должен был быть передан для всех базовых дочерних элементов, данные которых были изменены.

Я не могу найти явных подробностей в документации.

Должен ли я:

  • Испускать dataChanged только для родительского узла, и все дочерние узлы будут обновлены?
  • Также испускать dataChanged для всех измененных дочерних элементов, в этом случае наблюдаемое поведение — это просто отсутствие оптимизации из QTreeView

Комментарии:

1. Откуда вы знаете, что дочерние элементы также обновляются?