Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как "заморозить" QTableView
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
JohnZ
Вопрос в названии темы :)
Дело в том, что при вызове формы редактирования записи, вызванной из списка QTableView по "Enter",
происходит перерисовка QTableView есс-но с обращением к data( ... ) модели.
Как на время редактирования записи запретить QTableView перерисовываться, а если можно
запретить ему временно обращение к data( ... ) модели, было-бы вообще супер ...
lanz
Нескромный вопрос, а зачем запрещать обращаться? Пусть перерисовывает, а когда закончите редактирование, обновите данные, не?
JohnZ
lanz, ну почему-же нескромный ?! :)
Вот тут http://www.forum.crossplatform.ru/index.php?showtopic=10180 я положил реализацию модели.
columnCount() удалил, оказалась лишней. Взгляните на ф-цию data(). Вкратце суть такова, - есть в БД
таблица, допустим 20 полей, fld_1, fld_2 ... fld_20. В списке нужно показать допустим
3 поля, - fld_5 fld_3 fld_8 - _именно_ в таком порядке ! В форме редактирования, как Вы понинимаете,
должны быть все 20. Дык вотЪ, при такой реализации ф-ции data(), список показывает так как задумано,
(т.е. ремап колонок вручную :) ) но при вызове формы (по Enter), происходит перерисовка списка,
причём за вызванной формой, и перестраивание колонок списка в порядке fld_1, fld_2, fld_3 :(
т.к. флажок inList в этот момент выключен.
Получается, что вызванная форма (на модальном диалоге !) не перекрывает доступ списку к модели ?!
Как с этим бороться, пока не знаю :(
После закрытия формы редактирования, (флажок inList включен) список восстанавливается как было до вызова формы ...
lanz
Сделайте две proxy-модели, по одной для каждой формы. А то так вы замучаетесь.
Либо пусть редактор оперирует на центральной модели.

А так вы тащите бизнес-логику в модель, что не есть правильно - получаются такие проблемы как у вас сейчас.
Пусть поток данных направляет ваш дизайн :lol:

Что то вроде того что в приложении.


Цитата(JohnZ @ 17.10.2014, 12:28) *
не перекрывает доступ списку к модели ?!

Нет, иначе как бы окно перерисовывалось, в модальном диалоге есть event loop, который качает события для этого треда.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.