Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Dp0H от Сентября 28, 2011, 11:46



Название: QLineEdit и editingFinished при редактировании модели
Отправлено: Dp0H от Сентября 28, 2011, 11:46
Есть наследник от QLineEdit для отображения и правки даты (nullable).
Ничего особенного не делает, но QDataWidgetMapper привязывается к добавленному у наследника свойству
Q_PROPERTY(QDate date READ getDate WRITE setDate)

Если сигнал editingFinished вызван нажатием Enter, то text() возвращает то, что отображает QLineEdit.
Но если editingFinished вызван потерей фокуса, то text() возвращает предыдущее значение (до правки соотв. значения поля модели).
Собственно, вопрос заключается в том, как получить реальный текст контрола (наследника QLineEdit) в обработчике editingFinished при любой причине возникновения сигнала,
если контрол привязан к модели. Вообще не понятно, почему получение текста связано с получением данных из модели, если модель смапплена по другому свойству...


Название: Re: QLineEdit и editingFinished при редактировании модели
Отправлено: asvil от Сентября 28, 2011, 12:34
qobject_cast<QLineEdit*>(sender())->text();


Название: Re: QLineEdit и editingFinished при редактировании модели
Отправлено: Dp0H от Сентября 28, 2011, 15:02
text() не переопределена. По факту получилось, что в текст успевало записаться значение из модели. Решил с помощью QItemDelegate выписыванием различного поведения в разных случаях.
Спасибо.