У меня есть QTreeView
в PyQt5 с проверяемыми родительскими и дочерними узлами. Я могу расширить родительский узел и иметь обратные вызовы для выбора / отмены выбора всех дочерних узлов при выборе / отмене выбора родительского узла. Такое поведение отлично работает.
Но когда я отменяю выбор или выбираю любой из дочерних узлов, все дерево по умолчанию рушится (рисунок справа). В идеале я хотел бы, чтобы дерево поддерживало его состояние, когда бы ни был выбран или отменен выбор дочернего узла. Есть ли флаг для QTreeView
, чтобы переопределить и не иметь этого поведения по умолчанию для свертывания всех дочерних узлов?
Моя попытка до сих пор: Я отслеживаю QModelIndex
изродительский элемент всякий раз, когда щелкается дочерний узел, а затем вызывается функция expand
объекта QTreeView
с аргументом QModelIndex
этого родительского элемента в качестве аргумента. Но это, кажется, не мешает поведению, упомянутому выше. Однако функция expandAll
работает нормально. Но это имеет обратную сторону в расширении детей других родителей, которые не представляют интереса. Я бы предпочел держать их свернутыми, если бы это было их состояние.
Есть ли у кого-нибудь какие-либо данные?