Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: eg015t от Март 05, 2009, 10:19



Название: Ограничение максимизации окон
Отправлено: eg015t от Март 05, 2009, 10:19
Есть приложение, которое должно распологаться всегда в виде панели сверху экрана. Но при максимальном расскрытии сторонних приложений, они, естественно, частично попадают под эту панель. Не подскажите как этого избежать? Заранее благодарен, использую QT 3.


Название: Re: Ограничение максимизации окон
Отправлено: sendevent от Март 07, 2009, 16:48
я так понимаю, нужно поведение "как у квипа"? тогда надо курить используемый оконный менеджер.
не выходя за рамки кьют - максимум что можно сделать, это установить "панель" как топлевел, что, вроде, уже и сделано.



Название: Re: Ограничение максимизации окон
Отправлено: cresta от Март 07, 2009, 16:56
может попробовать сделать панель автоматически убирающуюся?
Следить за положением курсора и если он вверху, выдвигать панель. Если курсор ушел с панели - через n секунд убирать её


Название: Re: Ограничение максимизации окон
Отправлено: eg015t от Март 07, 2009, 21:46
Спасибо за советы, но, к сожалению, убирать с экрана нельзя, панель всегда на виду должна быть.. Менеджер - IceWM...


Название: Re: Ограничение максимизации окон
Отправлено: Alex Custov от Март 08, 2009, 19:03
Тебе нужны strut-ы из NETWM.

http://www.linux.org.ru/wiki/en/NETWM

в конце есть архив с примером такой панели.


Название: Re: Ограничение максимизации окон
Отправлено: eg015t от Март 10, 2009, 10:09
>Тебе нужны strut-ы из NETWM.
То, что нужно, посмотрел пример на QT4. Но, у меня QT3 и там нет QX11Info....


Название: Re: Ограничение максимизации окон
Отправлено: Steven_Orko от Март 10, 2009, 10:30
Но, у меня QT3 и там нет QX11Info....
Создай сам по примеру. Я так и сделал. К сожалению, не могу передать код, т.к. исходники уже на учете. ))))

Вообще, если говорить о приведенной ссылке, то тебе будет достаточно следующих двух функций:
Код:
qt_xrootwin(void)
qt_xdisplay(void)


Название: Re: Ограничение максимизации окон
Отправлено: eg015t от Март 10, 2009, 13:23
Steven_Orko, а поподробней можно с примером с тем? Пробовал заменить QX11Info на qt_xdisplay из qwindowdefs.h, netwm.h оставил без изменений. Но при компиляции ругается на NET_WM_STRUT_PARTIAL. В моем /X11/Хatom.h "NET_WM_STRUT_PARTIAL" не пристутсвует.


Название: Re: Ограничение максимизации окон
Отправлено: Alex Custov от Март 10, 2009, 14:00
qt3 panel


Название: Re: Ограничение максимизации окон
Отправлено: eg015t от Март 10, 2009, 16:57
>qt3 panel
как то тоже не работает у меня... все скомпилировалось... панель запускается.. но желаемых свойств не имеет, ведет себя как обычное окно:-(


Название: Re: Ограничение максимизации окон
Отправлено: Alex Custov от Март 10, 2009, 18:44
проверил на Дебиановском IceWM - всё прекрасно работает.

Твой IceWM скомпилирован с WMSPEC_HINTS?


Название: Re: Ограничение максимизации окон
Отправлено: Steven_Orko от Март 11, 2009, 08:35
Steven_Orko, а поподробней можно с примером с тем? Пробовал заменить QX11Info на qt_xdisplay из qwindowdefs.h, netwm.h оставил без изменений. Но при компиляции ругается на NET_WM_STRUT_PARTIAL. В моем /X11/Хatom.h "NET_WM_STRUT_PARTIAL" не пристутсвует.
А что значит, ругается??? Приведи вывод.
Твой IceWM скомпилирован с WMSPEC_HINTS?
Это здесь причем??? Я могу создать в Иксах любой атом у любого окна, хотя бы даже с именем "bla-bla".


Название: Re: Ограничение максимизации окон
Отправлено: eg015t от Март 11, 2009, 10:02
Получилось под QT3 скомпилить, проблема была в приложении, к сабжу отношения не имеет. Форумчане, извиняйте, ошибка с оконным менеджером, используется ELK. :-[ В нем приложение ведет себя не так как ожидалось. Под KDE все в порядке...


Название: Re: Ограничение максимизации окон
Отправлено: Steven_Orko от Март 11, 2009, 13:44
О!!! Эт ты мог спросить. Я бы тебе ответил, что с этим elk-wm только гемор один. Мы от него отказались и свой используем. Только DM от ELK используем пока, и то до тех пор, как руки до него дойдут. Остальная вся среда DE самописная, мною )))))


Название: Re: Ограничение максимизации окон
Отправлено: eg015t от Март 11, 2009, 14:19
Нуу.... Буду знать :) Спасибо за советы!


Название: Re: Ограничение максимизации окон
Отправлено: Alex Custov от Март 11, 2009, 17:48
Твой IceWM скомпилирован с WMSPEC_HINTS?
Это здесь причем??? Я могу создать в Иксах любой атом у любого окна, хотя бы даже с именем "bla-bla".

Ну создай. Ну "bla-bla". Для свои целей - сколько угодно. Атомы NETWM - средство косвенного общения с оконым менеджером, и если я создаю атом NET_WM_STRUT_PARTIAL то это намёк оконному менеджеру, что я от него что-то хочу, и он должен мне это предоставить. И если IceWM скомпилен без WMSPEC_HINTS, то он не будет знать о NET_WM_STRUT_PARTIAL и струты работать не будут. Доступно объяснил? :)