Название: перевод окна на передний план Отправлено: vol4enok от Июнь 22, 2009, 17:04 Здравствуйте
Возникла такая проблема. Приложение работает в полноэкранном режиме и необходимо по нажатию на кнопку мыши перевести другое окно на передний план. Общение с документацией ни к чему не привело =( Не подскажете функцию? Название: Re: перевод окна на передний план Отправлено: SABROG от Июнь 23, 2009, 19:11 Нельзя. В Qt события клавы и мыши ловят только окна, которые в фокусе. Глобальных хуков нет.
Название: Re: перевод окна на передний план Отправлено: Авварон от Июнь 23, 2009, 19:49 в qt extensions (или как там его) есть класс QExGlobalShortcut . Может и для мыши что есть? в любом случае был бы класс полезным если напишешь и выложишь
Название: Re: перевод окна на передний план Отправлено: spectre71 от Июнь 23, 2009, 19:53 Нельзя. В Qt события клавы и мыши ловят только окна, которые в фокусе. Глобальных хуков нет. Как это события мыши ловятся только для окон которые в фокусе, ерунда.Название: Re: перевод окна на передний план Отправлено: mugabe от Июнь 24, 2009, 04:12 А я так вообще не могу связать между собой вопрос автора и ответы отвечающих :)
Название: Re: перевод окна на передний план Отправлено: sinj от Июнь 24, 2009, 07:21 Могу предложить несколько другой подход: ты можешь открывать новое модальное окно, т.е. окно которое всегда на переднем плане, и блокирует родительское. Такими качествами обладают диалоговые окна.
Название: Re: перевод окна на передний план Отправлено: SABROG от Июнь 24, 2009, 09:03 Как это события мыши ловятся только для окон которые в фокусе, ерунда. Я имел ввиду перекрытых другими окнами, а не неактивных. Название: Re: перевод окна на передний план Отправлено: spectre71 от Июнь 24, 2009, 09:13 Как это события мыши ловятся только для окон которые в фокусе, ерунда. Я имел ввиду перекрытых другими окнами, а не неактивных.Только если модальными. Название: Re: перевод окна на передний план Отправлено: SABROG от Июнь 24, 2009, 11:05 Только если модальными. Ну сделай 2 окна, разверни их, выбери любое из них и пробуй ловить нажатие мышки и клавиатуры Qtшными способами в том, что находится под текущим окном. Оба окна родительские, чайлдов нет. Название: Re: перевод окна на передний план Отправлено: spectre71 от Июнь 24, 2009, 11:17 Ну сделай 2 окна, разверни их, выбери любое из них и пробуй ловить нажатие мышки и клавиатуры Qtшными способами в том, что находится под текущим окном. Оба окна родительские, чайлдов нет. Про события клавиатуры я не писал!!! Читай внимательней!Ты писал не про нажатие мыши, а мышиные события! Опять же я писал "Только если модальными." - мышиные события будут ловиться при перекрытии не модальными окнами. 1) Нажатие мыши будет ловиться поскольку, если сверху нет модального окна, окно куда жмем станет активным! 2) А "Mouse Move" и так ловятся даже при неактивном окне, опять же если, сверху нет модального окна! Название: Re: перевод окна на передний план Отправлено: SABROG от Июнь 24, 2009, 11:33 Вот же писал:
Цитировать В Qt события клавы и мыши ловят только окна, которые в фокусе. Цитировать окно куда жмем станет активным! Хочешь сказать, что если мы нажмем мышкой в область окна, которое перекрывает другое полностью (но не модальное), то перекрытое окно (Z-order) всплывет из глубин и станет активным?Название: Re: перевод окна на передний план Отправлено: spectre71 от Июнь 24, 2009, 11:39 Вот же писал: А я писал про полные перекрытия, или про то что надо жать или наводить мышь на другое окно?Цитировать В Qt события клавы и мыши ловят только окна, которые в фокусе. Цитировать окно куда жмем станет активным! Хочешь сказать, что если мы нажмем мышкой в область окна, которое перекрывает другое полностью (но не модальное), то перекрытое окно (Z-order) всплывет из глубин и станет активным?Или ты считаешь что окно которое поверх другого всегда обязательно и полность его перекрывает! Твое утверждение было: Цитировать В Qt события клавы и мыши ловят только окна, которые в фокусе. Так вот для событий мыши оно не верно!Название: Re: перевод окна на передний план Отправлено: SABROG от Июнь 24, 2009, 12:14 Автору топика: лови mouseReleaseEvent() у своего окна и делай окну activateWindow(). Окно при этом должно быть с флагом Qt::WindowStaysOnTopHint иначе всплывет позади, если оно минимизировано.
|