вопрос по QDataWidgetMapper |
Здравствуйте, гость ( Вход | Регистрация )
вопрос по QDataWidgetMapper |
Гость_Гость_asket_*_* |
31.5.2013, 8:25
Сообщение
#1
|
Гости |
вопрос по QDataWidgetMapper, я создал свою модель-наследника QAbstractTableModel , привязал к полям данной модели GUI-виджеты (lineEdit, spinBox и прочее ) с помощью QDataWidgetMapper, но значения полей меняются в случае потери фокуса виджета, как сделать чтобы значения полей менялись при изменении значении параметров виджета? Например, spinBox прокручивается, а значение поля модели не меняется, оно изменится в случае, если spinBox потеряет фокус или нажата Enter, что нежелательно. Спасибо.
|
|
|
Анна |
5.6.2013, 14:52
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 276 Регистрация: 22.5.2008 Из: Зеленоград Пользователь №: 181 Спасибо сказали: 30 раз(а) Репутация: 4 |
Я поглядела на функцию addMapping().
Там, насколько я поняла после беглого взгляда, маппер пользуется eventFilter() от делегата QItemDelegat. может, стоит делегата перегрузить, а не спинБокс.. Гость_Гость_asket_*_*, создал свою модель-наследника QAbstractTableModel Теперь очередная проблема как заставить QDataWidgetMapper обновлять содержимое виджетов по изменению содержимого модели? Ну, наверное, ваша модель должна где-то посылать сигнал dataChanged ( const QModelIndex & topLeft, const QModelIndex & bottomRight ), и , скорей всего, это "где-то" функция setData() у модели. Я бы начала исследования этого вопроса с исходника QDataWidgetMapper, конкретно - функции setModel(). ... и там, действительно происходит connect(model, SIGNAL(dataChanged ...),...); Сообщение отредактировал Анна - 5.6.2013, 16:03 |
|
|
Текстовая версия | Сейчас: 25.11.2024, 19:31 |