Перехватывание события: окно не имело фокуса и получила его, focusInEvent & focusOutEvent |
Здравствуйте, гость ( Вход | Регистрация )
Перехватывание события: окно не имело фокуса и получила его, focusInEvent & focusOutEvent |
Гость_AHTOH_* |
18.9.2008, 9:48
Сообщение
#1
|
Гости |
Здравствуйте.
Задача: У меня имеется многопоточное клиент - серверное приложение. Необходимо выполнять синхронизацию, когда окно клиента не имело фокуса и вдруг его получило. Т.е. у меня открыто 2 клиентских окна, в одном из них я добавил запись в БД. Нужно, чтобы при переключение на окно другого клиента, данные в нём обновились. Пробовал совместное перегружение функций focusInEvent & focusOutEvent. Но по непонятным причинам, срабатывает необходимое только 1 раз. Вот конкретная последовательность моих шагов: В классе главного окна ( QMainWindow ) я пишу объявление перегруженной функции: ... private slots: void focusInEvent( QFocusEvent* event ); ... В реализации функции имеется следующий код: void CTouristClient::focusInEvent( QFocusEvent* event ) { // Focus In Event resetData(); } И данный код выполняется всего лишь 1 раз. Т.е. я открываю окно одного клиента, добавляю в нём запись в БД, переключаюсь на окно другого клиента - данные обновились - всё сработало. При повторной попытке повторить то же самое - ничего не происходит. Подскажите, пожалуйста, в чём может быть дело. P.S. Qt Win Commercial 4.3.1 & MVS2005. |
|
|
Tonal |
19.9.2008, 10:15
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
А причём тут многопоточность?
|
|
|
Гость_AHTOH_* |
19.9.2008, 16:17
Сообщение
#3
|
Гости |
|
|
|
Tonal |
19.9.2008, 19:52
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Что имеется в виду под клиентом? Другой экземпляр твоего приложения?
Если да, то смотри события с типами QEvent::ApplicationActivate и QEvent::ApplicationDeactivate |
|
|
Текстовая версия | Сейчас: 29.3.2024, 3:58 |