Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Bag? collapse после сортировки в QTreeView [RSS Feed]

#1 Май 6, 2009 21:05:44

avalanche
От:
Зарегистрирован: 2009-03-17
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Bag? collapse после сортировки в QTreeView

Использую QAbstractItemModel в связке с QSortFilerProxyModel которая отображается QTreeView. В proxy установлена опция setDynamicSortFilter(True)

Когда модель посылает сигнал layoutChanged(), происходит сортировка, НО QTreeView делает collapse всех открытых узлов дерева.

Как это пофиксить?



Офлайн

#2 Май 8, 2009 00:17:53

avalanche
От:
Зарегистрирован: 2009-03-17
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Bag? collapse после сортировки в QTreeView

Проблема решена



Офлайн

#3 Май 8, 2009 08:00:25

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

Bag? collapse после сортировки в QTreeView

как?



Офлайн

#4 Май 8, 2009 08:54:46

avalanche
От:
Зарегистрирован: 2009-03-17
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Bag? collapse после сортировки в QTreeView

poltergeist
как?
В моей модели все узлы дерева являются дочерними узлами корневого. Все узлы, включая корневой - экземпляры TreeItem. Сам корневой узел не имел индекса и не отображался в QTreeView. Проблема решилась, когда я создал index для корневого узла. После этого корневой узел стал отображаться и при изменениях в структуре дерева оно больше не сворачивается.

На всякий случай вот пример TreeItem

class TreeItem(Entity):

def data(self):
return self.name

def child(self, row):
return self.children

def childCount(self):
return len(self.children)

def row(self):
if self.parent:
return self.parent.children.index(self)
return 0

def __repr__(self):
return ‘<TreeItem: %s>’ % self.name



Офлайн

  • Начало
  • » GUI
  • » Bag? collapse после сортировки в QTreeView[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version