Russian Qt Forum

Qt => Model-View (MV) => Тема начата: morbit85 от Ноябрь 29, 2009, 19:10



Название: QDataWidgetMapper + QSqlRelationalTableModel + QComboBox, проблема
Отправлено: morbit85 от Ноябрь 29, 2009, 19:10
Всем привет! Столкнулся с такой проблемой:

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

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

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

БД - SQLite
Qt 4.6 rc


Название: Re: QDataWidgetMapper + QSqlRelationalTableModel + QComboBox, проблема
Отправлено: morbit85 от Декабрь 10, 2009, 22:06
Неужели никто не сталкивался? Как вообще вы реализуете добавление записей в зависимые таблицы во время редактирования главной?

По поводу предыдущего поста - если выполнить submitAll() модели маппера - то всё начинает работать как надо, но все изменения в остальных полях сбрасываются (что вобщем-то не удивительно)...


Название: Re: QDataWidgetMapper + QSqlRelationalTableModel + QComboBox, проблема
Отправлено: kaa от Май 31, 2010, 12:31
Если еще актуально...

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


Название: Re: QDataWidgetMapper + QSqlRelationalTableModel + QComboBox, проблема
Отправлено: morbit85 от Май 31, 2010, 17:31
Спасибо конечно, но я уже всю архитектуру приложения перекроил, вообще отказался от маппера, использвал шаблон MVP.
Для решения проблемной задачи написал компонент, который позволяет и добавлять и редактировать записи в зависимой таблице (LineEdit + выпадающий ListView).


Название: Re: QDataWidgetMapper + QSqlRelationalTableModel + QComboBox, проблема
Отправлено: Mastersan от Декабрь 13, 2014, 00:15
Добавить:
mapper->setItemDelegate(new QSqlRelationalDelegate(this));