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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Перехват закрытия делегата  (Прочитано 2570 раз)
SpiritFire
Гость
« : Февраль 14, 2010, 18:53 »

Скажите, пожалуйста, как перехватить закрытие делегата?

Я понял, что можно в eventFilter ловить нажатия клавишь, но закрытие может быть вызвано и мышью, и даже програмной сменой фокуса... В свою очередь ловить смены фокуса для делегата я думаю очень неудобно, поскольку сам виджет делегата состоит из двух контроллов, и перемещение фокуса между ними не должно приводить к закрытию эдитора. И возникают сомнения в том, что получив сигнал о смене фокуса при определенных обстоятельствах смогу отменить закрытие эдитора.

Вопрос в том, можно ли как-то удобно перехватить момент закрытия эдитора и повлиять на возможность его закрыть?

Что делается: делается делегат для ввода пути. Состоит из QLineEdit-a и QToolButton-a. Возможно, и из иконки. При закрытии эдитора проверяется, что путь существует, и если его не существует - выдается соответствующее предупреждение в возможностью продолжить редактирование пути, отменить изменения, или все же сохранить указанное значение.


PS. Обработка QEvent::Close в editorEvent не помогает - событие туда не доходит
« Последнее редактирование: Февраль 14, 2010, 18:56 от SpiritFire » Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #1 : Февраль 14, 2010, 21:17 »

Цитировать
QEvent::Close в editorEvent
Если я правильно понял то эдитор делегата у вас - это самостоятельное окошко - может стоит в нем ловить Close - оно же закрывается - и выводить уже модальное окошко с вопросом?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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