Crash при эмитте layoutChanged у QAbstractItemModel, Qt 4.5.0 |
Здравствуйте, гость ( Вход | Регистрация )
Crash при эмитте layoutChanged у QAbstractItemModel, Qt 4.5.0 |
Vass |
21.4.2009, 14:02
Сообщение
#1
|
Студент Группа: Участник Сообщений: 46 Регистрация: 17.3.2009 Из: Россия, Рыбинск Пользователь №: 617 Спасибо сказали: 8 раз(а) Репутация: 0 |
Моя модель наследуется от QAbstractItemModel и приделана к QTreeView через QSortFilterProxyModel.
После дропа item'a на дерево делаю emit layoutChange() у модели, в асситенте написано, что это, можно сказать единственный адекватный способ перерисовать дерево. Однако, после этого вызова приложение валиться. бактрейс говорит что ошибка где-то в недрах Qt4Core в QProxyModel. Самое интересное, что валится все только в том случае, когда дропаешь на нулевую колонку (колонку с деревом). Кто-то может встречался с такой проблемой, я новичок в Qt, может что-то не так делаю, но уже замучался третий день биться с этой проблемой. |
|
|
igor_bogomolov |
21.4.2009, 14:29
Сообщение
#2
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Попробуй сделать такую полседовательность, и именно в таком порядке.
Должно помоч. По крайней мере в асистенте сказано, что для подклассов QAbstractItemModel, прежде чем выслать layoutChanged, необходимо выслать layoutAboutToBeChanged Сообщение отредактировал igor_bogomolov - 21.4.2009, 14:32 |
|
|
Vass |
21.4.2009, 16:35
Сообщение
#3
|
Студент Группа: Участник Сообщений: 46 Регистрация: 17.3.2009 Из: Россия, Рыбинск Пользователь №: 617 Спасибо сказали: 8 раз(а) Репутация: 0 |
Попробуй сделать такую полседовательность, и именно в таком порядке.
Должно помоч. По крайней мере в асистенте сказано, что для подклассов QAbstractItemModel, прежде чем выслать layoutChanged, необходимо выслать layoutAboutToBeChanged Пробовал, непомогло Попробуй сделать такую полседовательность, и именно в таком порядке.
Должно помоч. По крайней мере в асистенте сказано, что для подклассов QAbstractItemModel, прежде чем выслать layoutChanged, необходимо выслать layoutAboutToBeChanged хм... похоже помогло... сейчас потестирую... Но как то странно делал вызов layoutAboutToBeChanged(); в модели потом вносил изменения и делал layoutChanged(); не помогало, а подряд вроде работает. Нет.. все-таки не помогло, стало так: когда дроп из себя в себя иногда не валиться, когда дроп извне валиться всегда. |
|
|
Текстовая версия | Сейчас: 28.3.2024, 20:38 |