Как "заморозить" QTableView, Запретить QTableView обращение к data( ... ) |
Здравствуйте, гость ( Вход | Регистрация )
Как "заморозить" QTableView, Запретить QTableView обращение к data( ... ) |
JohnZ |
16.10.2014, 19:21
Сообщение
#1
|
Участник Группа: Участник Сообщений: 139 Регистрация: 19.7.2014 Пользователь №: 4190 Спасибо сказали: 10 раз(а) Репутация: 0 |
Вопрос в названии темы
Дело в том, что при вызове формы редактирования записи, вызванной из списка QTableView по "Enter", происходит перерисовка QTableView есс-но с обращением к data( ... ) модели. Как на время редактирования записи запретить QTableView перерисовываться, а если можно запретить ему временно обращение к data( ... ) модели, было-бы вообще супер ... |
|
|
lanz |
16.10.2014, 22:51
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Нескромный вопрос, а зачем запрещать обращаться? Пусть перерисовывает, а когда закончите редактирование, обновите данные, не?
|
|
|
JohnZ |
17.10.2014, 11:28
Сообщение
#3
|
Участник Группа: Участник Сообщений: 139 Регистрация: 19.7.2014 Пользователь №: 4190 Спасибо сказали: 10 раз(а) Репутация: 0 |
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 |
17.10.2014, 22:32
Сообщение
#4
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
Сделайте две proxy-модели, по одной для каждой формы. А то так вы замучаетесь.
Либо пусть редактор оперирует на центральной модели. А так вы тащите бизнес-логику в модель, что не есть правильно - получаются такие проблемы как у вас сейчас. Пусть поток данных направляет ваш дизайн Что то вроде того что в приложении. не перекрывает доступ списку к модели ?! Нет, иначе как бы окно перерисовывалось, в модальном диалоге есть event loop, который качает события для этого треда. Сообщение отредактировал lanz - 17.10.2014, 22:32
Прикрепленные файлы
|
|
|
Текстовая версия | Сейчас: 25.4.2024, 16:16 |