Название: QTreeView и строки разного размера Отправлено: Hsilgos от Ноябрь 25, 2009, 17:21 Написана своя модель и делегат для QTreeView.
Модель расчитана для работы со строками разного размера. Размер строки динамический. Та строка, которая в данный момент выделена (если она одна) имеет размер больше, чем другие. Т.е. отображается какая-то расширенная информация. Изменение размера делается в лоб: Код Код: // slot на изменения размера Если я двигаюсь по дереву с помощью клавиатуры, или нет поддеревьев (т.е. просто список, без узлов) то всё работает отлично. Но если кликать мышой, то работает некорректно. Поддерево закрывается, потом открывается и выделение снимается. В дебаге посмотрел, вы время клика мышью сигнал selectionChanged дергается 2 раза, а если "хожу" по дереву клавиатурой - 1 раз. В общем, такая вот проблемка нарисовалась. Если кто знает решение или знает, как это реализовать более элегантно, жду советов Название: Re: QTreeView и строки разного размера Отправлено: pastor от Ноябрь 25, 2009, 17:32 Можешь переопределить QItemDelegate::sizeHint(...) и задавать нужный размер из него
Название: Re: QTreeView и строки разного размера Отправлено: Hsilgos от Ноябрь 25, 2009, 17:39 Можешь переопределить QItemDelegate::sizeHint(...) и задавать нужный размер из него Я правильно понял, это можно будет делать динамически? У меня просто не получилось в своё время так сделать. Qt запоминал размер один раз и обновлял его только при вызове reset()Название: Re: QTreeView и строки разного размера Отправлено: Hsilgos от Ноябрь 25, 2009, 21:10 Нда... Позор моим сединам.
Нужно дергать Код: void QAbstractItemDelegate::sizeHintChanged ( const QModelIndex & index ) [signal] Вопрос решен |