Russian Qt Forum
Ноябрь 14, 2024, 20:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDataWidgetMapper + QSqlRelationalTableModel + QComboBox, проблема  (Прочитано 6774 раз)
morbit85
Гость
« : Ноябрь 29, 2009, 19:10 »

Всем привет! Столкнулся с такой проблемой:

Имеется форма редактирования данных, для связи виджетов с конкретными полями используется QDataWidgetMapper. Модель маппера - QSqlRelationalTableModel, модель QComboBox на этой форме - одна из relationModel'ей модели маппера. Всё это добро отлично работает, изменение значения в QComboBox применяется при сабмите маппера. Если добавить запись в relationModel, она сразу же появляется в QComboBox, но если выбрать эту запись, то после сабмита маппера этот выбор не сохраняется в его модели и текущий выбор в QComboBox сбрасывается.

Собственно вопрос - куда копать?

Извините, если что-то непонятно описал, в случае чего - отдельные моменты поясню.

БД - SQLite
Qt 4.6 rc
Записан
morbit85
Гость
« Ответ #1 : Декабрь 10, 2009, 22:06 »

Неужели никто не сталкивался? Как вообще вы реализуете добавление записей в зависимые таблицы во время редактирования главной?

По поводу предыдущего поста - если выполнить submitAll() модели маппера - то всё начинает работать как надо, но все изменения в остальных полях сбрасываются (что вобщем-то не удивительно)...
Записан
kaa
Гость
« Ответ #2 : Май 31, 2010, 12:31 »

Если еще актуально...

Здесь (http://pythonistaa.blogspot.com/2010/05/pyqt-relationmodel.html) описано мое решение на PyQt и рекомендации к решению на Qt. В общем я справился с PyQt, а на чистом Qt по моему должно быть еще проще.
Записан
morbit85
Гость
« Ответ #3 : Май 31, 2010, 17:31 »

Спасибо конечно, но я уже всю архитектуру приложения перекроил, вообще отказался от маппера, использвал шаблон MVP.
Для решения проблемной задачи написал компонент, который позволяет и добавлять и редактировать записи в зависимой таблице (LineEdit + выпадающий ListView).
Записан
Mastersan
Гость
« Ответ #4 : Декабрь 13, 2014, 00:15 »

Добавить:
mapper->setItemDelegate(new QSqlRelationalDelegate(this));
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.043 секунд. Запросов: 20.