Название: [РЕШЕНО] кривое отображение в QSortFilterProxyModel при вставке Отправлено: unkeep от Апреля 18, 2013, 10:58 source - SqlTreeModel
view - QSortFilterProxyModel При обычной вставке всё норм. Но если вставить уровень, а потом в него добавить подуровень, то вместе с ним в Прокси модель добавляются пустые строки(от 1 до 9+. не уследил закономерности). Причём такая проблема только на 2м уровне. Проверил в дебаге, оказалось, что при вставке строки на втором уровне она вставляется сразу с детьми(от 1-9+). Причём в исходной модели всё чётко. Индексы моделей не путаю. Преобразовывать не забываю. для наглядности вывожу в дебаге количество детей (вставил строку->выделил её->вывел инфу->вставил подстроку->вывел инфу) -------------------------- 0 - source model rows(before) 1 - view model rows(before) QVariant(QString, "15.9") //до вставки "INSERT INTO documents.modules (id_module, master_id_module, n_module, name_module) VALUES(4644, 4642, '15.9.0', 'без названия') RETURNING id_module" 1 - source model rows(after) 2 - view model rows(after) //после вставки ---------------------------- откуда эта шляпа вылазит - ума не приложу. третий день голову ломаю Название: Re: кривое отображение в QSortFilterProxyModel при вставке Отправлено: Bepec от Апреля 18, 2013, 12:01 Нет вменяемого кода, нет практически ничего. Как по такому судить можно?
Название: Re: кривое отображение в QSortFilterProxyModel при вставке Отправлено: unkeep от Апреля 18, 2013, 12:13 Нет вменяемого кода, нет практически ничего. Как по такому судить можно? методы в порядке вызова :Код
Код
Код
Код
Код
Название: Re: кривое отображение в QSortFilterProxyModel при вставке Отправлено: Bepec от Апреля 18, 2013, 12:23 Ну что сказать - берите дебаггер и ловите особенно в добавлении детей.
Я лично не вижу тут повторных добавлений, но очень много скрыто вашей спецификой ;) PS дали бы проект, я б дебаггером поковырялся. ( %90 что не дадите - много специфики :D ) Название: Re: кривое отображение в QSortFilterProxyModel при вставке Отправлено: unkeep от Апреля 18, 2013, 12:46 Ну что сказать - берите дебаггер и ловите особенно в добавлении детей. ничего не видно там. Весь процесс добавления модуля в модель и базу правильный на 100%. Я подозреваю что проблема обновления данных в прокси из исходной модели(физически этих глючных строк не существует, они только в представлении). дали бы проект, я б дебаггером поковырялся. базу не смогу дать. а без базы никуда.Название: Re: кривое отображение в QSortFilterProxyModel при вставке Отправлено: Bepec от Апреля 18, 2013, 12:58 А давайте подумаем вместе.
Данные строки имеются только в представлении. Т.е. в модели их нет. Верно? Допустим. Идём дальше. Представление отрисовывает строки, основываясь на данных и сигналах из модели. Верно? Доспустим. Идём дальше. Если появляются пустые строки, которых нет в модели, значить виновата функция добавления строк в модель. Верно? Допустим. Идём дальше. С учётом того, что пустые, никуда не относящиеся строки могут появляться из-за неверных вызовов ф-ций (точнее сигналов, но да ладно) beginInsertRow, следовательно надо проверить все эти места. Верно? Допустим. Потому бежим к проекту, цепляем дебаггер и пробуем смотреть что у нас получается шаг за шагом. Если это баг - то возможно воссоздать ситуацию в простейшем тестовом проекте. Если в этом виноват ваш код - переписывайте его. Название: Re: кривое отображение в QSortFilterProxyModel при вставке Отправлено: unkeep от Апреля 18, 2013, 13:10 спасибо. буду пробывать завтра
Название: Re: кривое отображение в QSortFilterProxyModel при вставке Отправлено: unkeep от Апреля 19, 2013, 12:21 нашёл закономерность.
до вставки:
после вставки:
всё дело было в beginInsertRows() было Код
сделал Код всё работает! спасибо за подсказку Название: Re: кривое отображение в QSortFilterProxyModel при вставке Отправлено: Bepec от Апреля 19, 2013, 12:23 На здоровье. [РЕШЕНО] в название темы и закрываааем :)
PS обращайся. |