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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Как вывести окно на передний план после загрузки приложения.  (Прочитано 21789 раз)
z11t3
Гость
« Ответ #15 : Апрель 21, 2010, 04:53 »

Под виндой начиная с XP (или даже с 2000й) приложение никаким боком не может на себя забрать фокус. Это продуманное и очень правильное системное поведение. Приложение выбирает пользователь и работает в нем, но переключить на другое его никто не может.
Неправда ваша. Провожу модернизацию системы диспетчерского управления (новый билд, старый писан Delphi - благо модулями). Оперативный персонал работает с программой в Full-screen (электрическая схема на весь экран, прочему софту там вообще делать нечего).
В общем жаль если действительно средствами QT не вывести запущенное приложение "выше" всех по Z индексу.
Попробую с вами пока не согласится и как-то исправить упущение, не используя платформо-зависимого кода.
Записан
SABROG
Гость
« Ответ #16 : Апрель 21, 2010, 08:25 »

Неправда ваша. Провожу модернизацию системы диспетчерского управления (новый билд, старый писан Delphi - благо модулями). Оперативный персонал работает с программой в Full-screen (электрическая схема на весь экран, прочему софту там вообще делать нечего).
Оперативный персонал калеки и не могут ткнуть мышкой в нужное окно? В Qt Full-screen не тоже самое, что в играх. Qt не меняет разрешение экрана.

Я сам на работе часто сталкиваюсь с проблемой "слишком умных" программ, которые "лезут под мышку", когда я пытаюсь совершить какое-то действие в другой программе. Частенько нажимал туда куда даже не собирался. Можно представить себе последствия подобных нажатий где нибудь в Firefox на запрос установки програмного обеспечения с какого нибудь вредоносного сайта.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #17 : Апрель 21, 2010, 11:12 »

>>не могут ткнуть мышкой в нужное окно?
её у них может вообще не быть если это имитация диспетчерского щита, равно как и клавиатуры
Записан

Юра.
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #18 : Апрель 21, 2010, 22:24 »

Под виндой начиная с XP (или даже с 2000й) приложение никаким боком не может на себя забрать фокус. Это продуманное и очень правильное системное поведение. Приложение выбирает пользователь и работает в нем, но переключить на другое его никто не может.
Неправда ваша. Провожу модернизацию системы диспетчерского управления (новый билд, старый писан Delphi - благо модулями). Оперативный персонал работает с программой в Full-screen (электрическая схема на весь экран, прочему софту там вообще делать нечего).
В общем жаль если действительно средствами QT не вывести запущенное приложение "выше" всех по Z индексу.
Попробую с вами пока не согласится и как-то исправить упущение, не используя платформо-зависимого кода.

Не пойму а в чем неправда? Персонал работает с развернутым на весь экран окном - вероятнее всего это программа как то автозапуском запускается при старте компа, но по сути ее выбрал сам человек - система не должна давать возможность брать на себя фокус другим окошкам, от других программ. Обычно при такой ситуации окно мигает в "статус баре" (когда оно рыпнулось вылезти на первый план - но система не дала).

Мне приходилось что-то подобное настраивать - обошелся showFullscreen(); для Qt-шных виджетов и тонкой настройкой целевой системы - убиранием всяких программ которые потенциально могли бы даже пытаться вылезти на первый план. Получился такой настроенный образ системы - который меняется редко, сначала заливается он на чистую машину - потом софт - что-то типа вашей электрической схемы.

Еще можно писать всякие супер хако-программки - периодически сворачивающие другие окна кроме требуемого, или воспользоваться готовым решением - например в KDE 3 можно было для окошек с конкретным классом задать такие параметры, как находиться на самом верхнем уровне и т.д. Но все это естественно уже не через Qt а через API конкретной системы...
Записан
SABROG
Гость
« Ответ #19 : Апрель 22, 2010, 01:20 »

>>не могут ткнуть мышкой в нужное окно?
её у них может вообще не быть если это имитация диспетчерского щита, равно как и клавиатуры
Для этих целей достаточно флага Qt::WindowStaysOnTopHint.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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