Russian Qt Forum
Июля 06, 2025, 22:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Управление событиями  (Прочитано 12751 раз)
Bepec
Гость
« Ответ #15 : Января 09, 2014, 10:08 »

Вы на вопрос ответьте пожалуйста
Пользователь кликнул в taskbar, фокус приложения потерян. Что ещё нужно вашему беспокойному разуму?
  Фокус окна будет потерян. И придёт сообщение в виде WM_INACTIVE и преобразуется в QEvent::ЧтотоТамOutFocus Улыбающийся
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Января 09, 2014, 10:42 »

Вы на вопрос ответьте пожалуйста
Пользователь кликнул в taskbar, фокус приложения потерян. Что ещё нужно вашему беспокойному разуму?
  Фокус окна будет потерян. И придёт сообщение в виде WM_INACTIVE и преобразуется в QEvent::ЧтотоТамOutFocus Улыбающийся
Не вижу почему мне это "нужно". Ну поменялся фокус и что с того? Мое приложение не получало действия пользователя прерывающего анимацию. А что там произошло за пределами приложения - не волнует. В исходном посте ясно сказано - переключение задач должно работать.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #17 : Января 09, 2014, 11:40 »

Аналог куба, что сейчас распространён.

Вот блин... Я не знаю даже, что такое этот "куб" Грустный Никогда не видел такого...

А по сути: это окна одного и того же приложения? или имеется в виду, что окно играет что-то, но если мы переходим на другое приложение, видео должно остановиться?
Но в любом случае, это значит, что сообщения типа focusInEvent/focusOutEvent должны быть перехвачены и обработаны. Почему при этом должно меняться состояние еще каких-нибудь объектов?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #18 : Января 09, 2014, 11:44 »

Не вижу почему мне это "нужно". Ну поменялся фокус и что с того? Мое приложение не получало действия пользователя прерывающего анимацию. А что там произошло за пределами приложения - не волнует. В исходном посте ясно сказано - переключение задач должно работать.

Сообщение придет от винды, как признак того, что сменилось активное приложение. На переключение задач это не будет влиять, т.к. данное сообщение - это постфактум. Просто система сообщает, что такое-то окно потеряло фокус, и все.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Bepec
Гость
« Ответ #19 : Января 09, 2014, 12:15 »

Igors, вы .... притворяетесь сами-знаете-кем? (воображение вам подскажет нужное слово Улыбающийся )

Вам решили задачу.

PS больше писать не буду в этой теме. Как об стену горох.

to Racheengel http://www.yaplakal.com/forum3/topic621599.html?hl=coub
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #20 : Января 09, 2014, 12:17 »

А по сути: это окна одного и того же приложения? или имеется в виду, что окно играет что-то, но если мы переходим на другое приложение, видео должно остановиться?
Нет, не должно, о чем уже говорилось неоднократно, начиная с исходного поста.

Но в любом случае, это значит, что сообщения типа focusInEvent/focusOutEvent должны быть перехвачены и обработаны. Почему при этом должно меняться состояние еще каких-нибудь объектов?
"Анимация" необязательно "видео", здесь это последовательность кадров создаваемая/рисуемая самим приложением. Что Вы "ищете под фонарем потому что там светло?" Улыбающийся Фокус никакого отношения к задаче не имеет

PS больше писать не буду в этой теме.
Огромное Вам СПАСИБО

Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #21 : Января 09, 2014, 16:21 »

Ок. Что должно произойти, если пользователь нажал одно из следующего:

1. Alt+Tab
2. Win
3. Ctrl+Alt+Del
4. Win+R
5. Win+L

?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #22 : Января 09, 2014, 16:58 »


ммм... а что в нем такого особенного? ютуб как ютуб Улыбающийся у меня после старта анимации она просто крутится в цикле и все.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #23 : Января 09, 2014, 17:29 »

Ок. Что должно произойти, если пользователь нажал одно из следующего:
Исходите из простого понятия "модальность". Напр если идут длинные расчеты и прогресс отображается в модальном QProgressDialog - в этом случае Вы же не спрашиваете "что должно произойти?". То же самое и здесь
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #24 : Января 09, 2014, 18:48 »

ммм, вроде идею я понял... ну а может сделать так:
- в момент старта анимации делаем это окно модальным
- и дизейблим на нем все остальные виджеты, кроме кнопки "стоп", ну или что еще у вас там для этого.
- анимация остановилась - все возвращаем взад.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #25 : Января 09, 2014, 19:27 »

ммм, вроде идею я понял... ну а может сделать так:
- в момент старта анимации делаем это окно модальным
- и дизейблим на нем все остальные виджеты, кроме кнопки "стоп", ну или что еще у вас там для этого.
- анимация остановилась - все возвращаем взад.
Тут со всех сторон так называемые "костыли". Перед установкой setWindowModality нужно сначала скрыть окно (hide). Также оно почему-то добавляет системный фрейм (хотя окно с флагом Frameless..). Кнопка "стоп" не предусмотрена и куда там ее лепить - хз, причем окон далеко не одно. Ну и модальность не запрещает меню/hotkeys, которое придется мучительно дизаблить.

Идеально подходит processEvents(ExcludeUserEvents) - но тогда чем остановить анимацию?  Улыбающийся
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #26 : Января 09, 2014, 23:21 »

не знаю конечно, но может это поможет?

http://qt-project.org/forums/viewthread/3055

вроде, похожая проблема решается...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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