| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt] Проблема с collapse в QTreeView |
| Автор: Brodyaga 18.3.2011, 16:58 |
| Всем привет! Такая проблема, хочу из кода свернуть соответствующий узел дерева, использую для этого void QTreeView::collapse ( const QModelIndex & index ) Узел не сворачивается, хотя index точно верный, так как проверяю получением из него объекта (QModelIndex::internalPointer) Также пробовал функцию setExpanded ( const QModelIndex & index, bool expanded ), на работает. Причём когда использую void QTreeView::collapseAll () всё работает отлично, но сворачиваются ВСЕ узлы, а мне нужны только определённые. Кто-нибудь сталкивался с подобной проблемой? Как быть? |
| Автор: Brodyaga 18.3.2011, 17:11 | ||
Я делаю дерево на основе своей модели, в internalPointer хранятся мои объекты, при проверке я получаю свой объект и вижу что он тот которому соответствует узел, так что index верный. |
| Автор: _GRIN_ 18.3.2011, 17:15 | ||
QTreeView::collapse() и QTreeView::expand() работают нормально (специально мини-приложение с дизайнером набросал и проверил)
Думаю вам стоит копать в сторону неправильного индекса (у меня были подобные проблемы из-за сортировки - но правда не в дереве а в таблице). Тестовое приложение (на котором проверял) QTreeWidget и две кнопки - в дерево делаешь айтемы (3x3x3) и проверяешь - обработчики в коде выше). |
| Автор: Brodyaga 18.3.2011, 17:18 | ||||
Так работает :(
У меня как раз прокси модель поверх обычной положена... Сейчас ещё покопаюсь.. |
| Автор: Brodyaga 18.3.2011, 17:38 |
| Заработало, оказывается нужно было индекс прокси модели использовать а не приобразовывать его в индекс обычной модели! Всем спасибо, тема закрыта. |