Делегат + QDateTimeEdit |
Здравствуйте, гость ( Вход | Регистрация )
Делегат + QDateTimeEdit |
phpCoder |
2.1.2015, 18:38
Сообщение
#1
|
Студент Группа: Неактивирован Сообщений: 16 Регистрация: 2.12.2014 Пользователь №: 4289 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добрый вечер.
Есть делегат с QDateTimeEdit. Как (с помощью какого сигнала или еще что...) можно отловить событие завершения редактирования? Сигнал QDateTimeEdit::editingFinished не годится. Если в таблице тыкнуть на ячейку, появляется мой редактор. Далее, если тыкнуть мышью в другом месте таблицы/окна программы, то текст из редактора вставляется в ячейку, но событие того, что этот текст вставился не происходит. Сигнал QDateTimeEdit::dateTimeChanged не годится. Как только поменяешь циферку, так сразу редактирование прекращается. Сигналы QDateTimeEdit::dateChanged и QDateTimeEdit::timeChanged аналогично. Что делать? Как обычно работают с таким делегатом? Соединение делаю как в примерах:
|
|
|
Majestio |
2.1.2015, 22:27
Сообщение
#2
|
Студент Группа: Участник Сообщений: 67 Регистрация: 13.2.2013 Пользователь №: 3710 Спасибо сказали: 1 раз(а) Репутация: 1 |
Какая версия Qt? Случаем не в этом дело?
|
|
|
Litkevich Yuriy |
9.1.2015, 2:42
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Стандартный делегат ведёт себя так:
Нажал Enter - редактирование прекращается и данные отправляются в модель. Ткнул в любое другое место представления - редактирование прекращается без сохранения данных. В стандартном делегате это реализуется через фильтр событий роль объекта-фильтра выполняет сам делегат, в его методе eventFilter() можно сделать то, что делает твой _commitAndCloseEditor(). П.С. в Qt4 такой косяк: при ручной стратегии сохранения для QSql...TableModel после тыканья в "иное" место представление вглядит так, как буд-то данные изменились, однако при фиксации данных в БД, предсталение обновлялось показывая прежнее значение. Сообщение отредактировал Litkevich Yuriy - 9.1.2015, 2:43 |
|
|
Текстовая версия | Сейчас: 29.11.2024, 17:56 |