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

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

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: запрет сворачивания окна  (Прочитано 26544 раз)
crossly
Гость
« : Декабрь 16, 2008, 10:39 »

собственно сабж....
Записан
Tonal
Гость
« Ответ #1 : Декабрь 16, 2008, 11:07 »

QHideEvent?
Записан
Sergeich
Гость
« Ответ #2 : Декабрь 16, 2008, 14:16 »

Qt::Window
| Qt::WindowMaximizeButtonHint
Записан
crossly
Гость
« Ответ #3 : Декабрь 16, 2008, 17:27 »

Qt::Window
| Qt::WindowMaximizeButtonHint
пробовал.... пропадает загаловок окна вообще....
Записан
Rcus
Гость
« Ответ #4 : Декабрь 16, 2008, 17:35 »

Код
C++ (Qt)
setWindowFlags(windowFlags() ^ Qt::WindowMinimizeButtonHint);
Записан
Detonator
Гость
« Ответ #5 : Декабрь 16, 2008, 20:00 »

собственно сабж....

А смысл? Команде "Свернуть все окна" пофиг, оне не сворачивает все окна как можно подумать, а просто выносит окно десктопа поверх всех окон и те остаются развернуты, но не видны.
Записан
crossly
Гость
« Ответ #6 : Декабрь 17, 2008, 10:44 »

собственно сабж....

А смысл? Команде "Свернуть все окна" пофиг, оне не сворачивает все окна как можно подумать, а просто выносит окно десктопа поверх всех окон и те остаются развернуты, но не видны.
зесь ты немного не прав.... WindowState показал minimized после "Свернуть все окна"
Записан
Detonator
Гость
« Ответ #7 : Декабрь 17, 2008, 12:09 »

ну статус она тебе какой хочешь покажет, а по факту сворачивания нет. Т.е. полный цикл всех сообщений как при сворачивании не происходит. И запретить это возможности тоже нет.
Записан
Kew
Гость
« Ответ #8 : Март 13, 2010, 07:28 »

В таком случае, помогите сообразить как отследить событие десктопа по "Свернуть все окна".
И если оно происходит, ТОПим наше приложение. Или даже просто обновление или активации приложения хватит?
Вобщем... как же отследить событие десктопа о свёртывании всех окон. Действительно QHideEvent показывает, что при этом событии не происходит свёртывания приложения.
Прошарил гугл.. ничего стоющего ненашёл....
У меня приложение, работает в нескольких режимах, в свободном, всегда поверх всех окон, всегда внизу всех окон... При "Поверх всех окон", естественно нужда отпадает.
А что же делать при остальных двух режимах?
Остаётся отловить событие.
Есть у кого предложения как это реализовать Непонимающий
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #9 : Март 13, 2010, 11:56 »

В таком случае, помогите сообразить как отследить событие десктопа по "Свернуть все окна".

Под какой ОС? В Linux/NETWM - _NET_SHOWING_DESKTOP.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #10 : Март 13, 2010, 11:56 »

Команде "Свернуть все окна" пофиг, оне не сворачивает все окна как можно подумать, а просто выносит окно десктопа поверх всех окон и те остаются развернуты, но не видны.

Как работает "показать desktop" - implementation defined, просто исходя из наличия нескольких реализаций на нескольких ОС.
Записан
Kew
Гость
« Ответ #11 : Март 15, 2010, 05:47 »

Под какой ОС? В Linux/NETWM - _NET_SHOWING_DESKTOP.
Как работает "показать desktop" - implementation defined, просто исходя из наличия нескольких реализаций на нескольких ОС.

пишу под виндовс, а вообще не плохобыло бы показать пример как для начинающих  Улыбающийся
как вообще сделать такое?

Вот нашёл немного инфы по событиям(только это для линухов помоему...):
Код:
_NET_SHOWING_DESKTOP desktop, CARDINAL/32

Some Window Managers have a "showing the desktop" mode in which windows are hidden, and the desktop background is displayed and focused. If a Window Manager supports the _NET_SHOWING_DESKTOP hint, it MUST set it to a value of 1 when the Window Manager is in "showing the desktop" mode, and a value of zero if the Window Manager is not in this mode.
If a Pager wants to enter or leave the mode, it MUST send a _NET_SHOWING_DESKTOP client message to the root window requesting the change:
_NET_SHOWING_DESKTOP
  message_type = _NET_SHOWING_DESKTOP
  format = 32
  data.l[0] = boolean 0 or 1
  other data.l[] elements = 0
The Window Manager may choose to ignore this client message.

Я так понмаю, что нужно хватать события с виндовс менеджера...
Но какНепонимающий пример очень желателен...
Но, как это использовать в моей цели?
а платформа такова qt4.6, win xp...7 
« Последнее редактирование: Март 15, 2010, 13:43 от Kew » Записан
insamo
Гость
« Ответ #12 : Январь 07, 2011, 09:05 »

Пишу приложение. Тож надо запретить сворачивание, чтобы вообще не сворачивалось, даже при нажатии win+d ctrl+d.

ИМХО надо копать в сторону отлова события minimize, а потом просто восстанавливать окно

Записан
ufna
Гость
« Ответ #13 : Январь 07, 2011, 14:34 »

Не думаю что "свернуть все окна" можно обойти простыми путями в винде. Ибо тогда суть сией кнопочки теряется. И, как уже сказали, это просто событие "рабочий стол пустить поверх".
Записан
insamo
Гость
« Ответ #14 : Январь 08, 2011, 11:13 »

отлов события minimize и замено его maximize не помогает(((

Люди добрые куда копать?
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


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