Ваш вопрос не совсем понятен.
Из заголовка («Функция QTreeView rootIsDecorated не работает») кажется, что вам нужно скрыть элементы управления, чтобы развернуть / свернуть дочерние элементы для ROOT
кака также все элементы модели под ним.Вы ожидаете, что rootIsDecorated
собственность позаботится об этом, и она не будет работать так, как вы ожидаете.Однако, насколько я вижу, свойство rootIsDecorated
работает точно так же, как оно задокументировано для работы:
Это свойство содержит, показывать ли элементы управления для разворачивания и свертывания элементы верхнего уровня
Элементы с дочерними элементами обычно отображаются с элементами управления, чтобы развернуть и свернуть их, позволяя показывать или скрывать своих дочерних элементов.Если это свойство имеет значение false, эти элементы управления не отображаются для элементов верхнего уровня .Это можно использовать для того, чтобы древовидная структура одного уровня выглядела как простой список элементов.
Единственный элемент верхнего уровня в вашем примере - ROOT
.Нет никакого контроля, чтобы развернуть / свернуть его дочерние элементы - это свойство rootIsDecorated
, работающее так, как оно предназначено для работы.Он не предназначен для того, чтобы что-то делать с элементами управления для элементов не верхнего уровня, то есть для детей с ROOT
в вашем примере.
Совершенно другой вопрос возникает из первого предложения в описании вопроса:
пытается изменить древовидную модель, чтобы она открывалась при загрузке окна
Так что, вероятно, вы захотите расширить элемент ROOT
, как только представление с модельюподключен к нему отображается?Это совершенно другое, чем свойство rootIsDecorated
.Чтобы развернуть элемент, нужно вызвать метод expand из QTreeView
с соответствующим модельным индексом.Например, предположим, что ваша модель имеет метод rootItemIndex
, который возвращает QModelIndex
, соответствующий элементу с именем ROOT
.Затем вам нужно сделать следующее в своем коде, чтобы расширить этот элемент:
self.tree_view.setModel(self.tree_model)
self.tree_view.expand(self.tree_model.rootItemIndex())