Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: QCasper от Март 20, 2008, 15:32



Название: Нужен ли Qt оконный менеджер? Linux.
Отправлено: QCasper от Март 20, 2008, 15:32
Собсно сабж. Нет же такого понятия, как Qt для linux? Есть понятие Qt для X11. Так вот достаточно ли для полноценной работы Qt приложений (с GUI) этого самого X11. Или оконный менеджер тоже обязателен?


Название: Re: Нужен ли Qt оконный менеджер? Linux.
Отправлено: Steven_Orko от Март 20, 2008, 15:59
Qt все равно, есть он или его нет.
Вопрос из серии:" А нужен ли стандартной графической программе оконный менеджер?"
В общен случае эта программа вообще не должна знать, о том, что есть какой-то оконный менеджер. Неважно, использует ли она либу Qt или нет.

Другое дело, что можно самому на Qt написать оконный менеджер. )))


Название: Re: Нужен ли Qt оконный менеджер? Linux.
Отправлено: QCasper от Март 20, 2008, 22:52
Вы, вероятно, не правильно поняли вопрос. Я не спрашиваю, обязательно ли программа должна знать о существовании оконного менеджера. Я спрашиваю, нужен ли для её корректной работы оконный менеджер. Программа вобщем-то и не знает, что она на компе выполняется, но тем не менее комп (как частный случай) для этого необходим.


Название: Re: Нужен ли Qt оконный менеджер? Linux.
Отправлено: ритт от Март 20, 2008, 23:55
я думаю, работать будет и без вм, но вряд ли программа сможет поднимать новые диалоги, ресайзиться, сворачиваться и т.д. (то, что присуще окнам)
во всяком случае, так ведут себя простые иксовые программы, запущенные без вм


Название: Re: Нужен ли Qt оконный менеджер? Linux.
Отправлено: lit-uriy от Март 21, 2008, 02:42
Цитировать
Нужен ли Qt оконный менеджер? Linux.
а в связи с чем такой вопрос?
если хочется облегчить Линукс, то оконных менеджеров простых достаточно много и идут в комплекте если не со всеми дистрибутивами, дак со многоими,
а Константин прав, работать будет, т.к. менеджер отвечает за манипуляцию нескольких окон, без него будет по сути во весь экран, и диалоги (модальные/немодальные), видимо, тоже будут во весь экран.


Название: Re: Нужен ли Qt оконный менеджер? Linux.
Отправлено: vregess от Март 21, 2008, 07:26
без него будет по сути во весь экран, и диалоги (модальные/немодальные), видимо, тоже будут во весь экран.
это вряд ли. окна будут своего размера.

попробуй
Код:
xinit xterm


Название: Re: Нужен ли Qt оконный менеджер? Linux.
Отправлено: Steven_Orko от Март 21, 2008, 11:46
без него будет по сути во весь экран, и диалоги (модальные/немодальные), видимо, тоже будут во весь экран.
это вряд ли. окна будут своего размера.

Абсолютно точно. Окна будут именно такими, какими их создает приложение. Только вот они не будут иметь оформление. А во остальном... все будет также. И ресайзится оно будет, и скрываться, но только программно. Пользователь не сможет управлять окнами, на то это и менеджер окон.
Так что, как я уже писал ( именно ВЫ не поняли мой ответ) Qt не нужен менеджер окон. Так же не нужен, как не нужен плагин для работы с доп. форматами изображений или плагин-драйвер к СУБД. Наличие определенных компонентом, их необходимость определяет разработчик ПО, т.е. ВЫ!
Если Вам надо, чтобы пользователь имел возможность манипулировать окнами Вашего приложения, то ВМ нужен, в противном случае нет.


Название: Re: Нужен ли Qt оконный менеджер? Linux.
Отправлено: QCasper от Март 21, 2008, 20:40
Абсолютно точно. Окна будут именно такими, какими их создает приложение. Только вот они не будут иметь оформление. А во остальном... все будет также. И ресайзится оно будет, и скрываться, но только программно. Пользователь не сможет управлять окнами, на то это и менеджер окон.
Так что, как я уже писал ( именно ВЫ не поняли мой ответ) Qt не нужен менеджер окон. Так же не нужен, как не нужен плагин для работы с доп. форматами изображений или плагин-драйвер к СУБД. Наличие определенных компонентом, их необходимость определяет разработчик ПО, т.е. ВЫ!
Если Вам надо, чтобы пользователь имел возможность манипулировать окнами Вашего приложения, то ВМ нужен, в противном случае нет.

События будут работать без оконного менеджера? Например будут ли работать кнопки, моего приложения?


Название: Re: Нужен ли Qt оконный менеджер? Linux.
Отправлено: vregess от Март 21, 2008, 21:52
События будут работать без оконного менеджера? Например будут ли работать кнопки, моего приложения?
События работать будут. Оконный менеджер управляет непосредственно окном (размер, расположение на рабочих столах и тд), а не тем, что в нем находится (кнопки, меню и тд).
События обрабатываются в основном цикле самой программы используя евенты X-сервера (в общем случае), а не оконного менеджера (который тоже юзает X).
По крайней мере должно так быть :)


Название: Re: Нужен ли Qt оконный менеджер? Linux.
Отправлено: Steven_Orko от Март 24, 2008, 12:39
События будут работать без оконного менеджера? Например будут ли работать кнопки, моего приложения?
События работать будут. Оконный менеджер управляет непосредственно окном (размер, расположение на рабочих столах и тд), а не тем, что в нем находится (кнопки, меню и тд).
События обрабатываются в основном цикле самой программы используя евенты X-сервера (в общем случае), а не оконного менеджера (который тоже юзает X).
По крайней мере должно так быть :)

Как уже написали, события работать будут. Но если есть оконный менеджер, то некоторых событий окно вообще может не дождаться, т.к. эти события обрабатывает оконный менеджер, и окна не получают даже соответствующего извещения.
Поэтому, какие события попадут в твой главный цикл обработки событий,  сильно зависит от оконного менеджера.
Примером можно привести KDE и kwin, в котором окну надо постараться сильно, чтобы получить события нажатия горячих клавиш для управления окнами, например CTRL+<key>, т.к. их ловит оконый менеджер.


Название: Re: Нужен ли Qt оконный менеджер? Linux.
Отправлено: vregess от Март 26, 2008, 09:59
Как уже написали, события работать будут. Но если есть оконный менеджер, то некоторых событий окно вообще может не дождаться, т.к. эти события обрабатывает оконный менеджер, и окна не получают даже соответствующего извещения.
Поэтому, какие события попадут в твой главный цикл обработки событий,  сильно зависит от оконного менеджера.
Примером можно привести KDE и kwin, в котором окну надо постараться сильно, чтобы получить события нажатия горячих клавиш для управления окнами, например CTRL+<key>, т.к. их ловит оконый менеджер.

Но если есть оконный менеджер... Но если нет - то, получается, приложение будет ловить эти события)
Ведь различные kwin'ы - это прокси между приложением и иксами (по части событий, а мб и многого другого).
Хотя этим вопросом не владею, но если это так и есть на самом деле, то без оконного менеджера приложение должно
работать полноценно.

Да и с другой стороны, если нет оконного менеджера, то скорее всего планируется запуск лишь одного гуи-приложения, а значит фокус всегда будет на нем. Тогда все события нажатия горячих клавиш превращаются в локальные события приложения.


Название: Re: Нужен ли Qt оконный менеджер? Linux.
Отправлено: Steven_Orko от Март 26, 2008, 14:08
Но если есть оконный менеджер... Но если нет - то, получается, приложение будет ловить эти события)
Верно. В этом случае приложение будут ловить эти сообщения.

Ведь различные kwin'ы - это прокси между приложением и иксами (по части событий, а мб и многого другого).
Это смотря с какой стороны подглядеть ))))))))))) По части событий, примерно так с некоторыми оговорками.
Оговорки касаются, когда сам оконный менеджер генерит событие и посылает его окну и другие подобные случаи.

Хотя этим вопросом не владею, но если это так и есть на самом деле, то без оконного менеджера приложение должно
работать полноценно.
Да, внутренняя функциональность приложения никоим убразом не будет урезана.
Но!!! Если часть функциональности связана с управлением окнами, то этого зависит от оконного менеджера. Может работать, а может и нет.

Да и с другой стороны, если нет оконного менеджера, то скорее всего планируется запуск лишь одного гуи-приложения, а значит фокус всегда будет на нем. Тогда все события нажатия горячих клавиш превращаются в локальные события приложения.
Ну, это тоже не всегда правильно. Оконный менеджер может упасть.
Изначально может планироваться не одно GUI-приложение, но без оконного менеджера. Все зависит от задачи. И фокус может получать совершенно любое окно.