Надо сделать компонент дерево с несколькими вложенными уровнями таких же деревьев
Отнаследовался от QTreeWidget, поддеревья сидят как itemWidget
Все бы ничего, кроме заморочки с ресайзингом родительского и дочерних деревьев:
при экспанде любого айтема, кроме последнего, дочернее дерево растягивается под содержимое, как и надо.
последнее же поддерево не меняет свой исходный размер.. поменяет, только если свернуть, а потом опять развернуть родительский узел.
Можно делать фиктивные _последние_ итемы, а потом их не рисовать - но это как-то некруто )
Собственно, вот.. уже задолбался =) помогите, плиз..
// код, который вызывается на itemExpanded() и itemCollapsed()
// как сделать проще обновление, не понял
QModelIndex i1 = indexFromItem( topLevelItem(0) )
, i2 = indexFromItem( topLevelItem(topLevelItemCount()-1) );
dataChanged( i1, i2 );
updateGeometries();
// дальше находим родительское дерево
TComboTreeItem *item = dynamic_cast<TComboTreeItem*>(topLevelItem(0))
, *parent = item->customParent;
if( parent )
dynamic_cast<TComboTree*>(parent->treeWidget())->repaintFromParent();
sizeHint() вроде не косячит, размеры правильно считаются
проект под msvc2008, мож глянет кто)