Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: Akon от Ноябрь 24, 2011, 15:42



Название: Панель рабочего стола (desktop panel)
Отправлено: Akon от Ноябрь 24, 2011, 15:42
Кто знает, есть ли Qt компонент, реализующий сабж?


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Bepec от Ноябрь 25, 2011, 08:59
Пожалуй не лишним будет уточнить. Какая ОС, и что ты подразумеваешь под "Панель рабочего стола (desktop panel)".

Хотя можно подумать что ты о Панели задач ведешь речь. Так вот она легко реализуется самим тобой.

Всего то ярлыки навесить, на секции поделить, и прилипание обдумать :)


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: ecspertiza от Ноябрь 25, 2011, 12:58
Помнится в Delphi 7 был компонент рабочего стола, кидаешь его на формочку и ала рабочий стол виндовый у тебя на форме. Может это про него речь ? но ИМХО эт изврат чтоли :)


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Bepec от Ноябрь 25, 2011, 13:26
Ждем ответа ТС. А так доквиджет или тулбар подойдут для этих целей :)

PS в исполнении извращенных желаний наш опыт увеличивается быстрее :)


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Akon от Ноябрь 25, 2011, 13:34
Цитировать
Пожалуй не лишним будет уточнить. Какая ОС, и что ты подразумеваешь под "Панель рабочего стола (desktop panel)".
А какая ось приходит на ум при словах "Qt компонент"? Конечно, хотелось бы по максимуму.
Панель рабочего стола - это панель, размещающаяся обычно с краев рабочего стола и которая не перекрывается окнами программ. Панель задач с кпопкой "Пуск" - да, пример такой панели. В моем случае - это типичная панель-лончер.

Цитировать
Хотя можно подумать что ты о Панели задач ведешь речь. Так вот она легко реализуется самим тобой.
Да не вопрос, и сам то я способен на очень многое ;D


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Bepec от Ноябрь 25, 2011, 13:42
Тогда тебе полный и четкий ответ.

Нет такого компонента.

Почему?

Берется QWidget, реализуется функция прилипания к краям экрана и устанавливается флаг поверх всех окон. Готовая заготовка. Делай не хочу что хошь.


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Akon от Ноябрь 25, 2011, 14:32
Ответ неверный  (хоть полный и четкий).
Панели рабочего стола реализуются через АПИ оболочки, например, по винду это COM-интерфейсы. В базовом QWidget нет такого кода. Флаг "поверх всех окон" это не то, например, он не изменит геометрию рабочего стола с учетом данного виджета, см. QDesktopWidget::availableGeometry(), QDesktopWidget::screenGeometry().


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Bepec от Ноябрь 25, 2011, 14:43
Твоя реплика печальна.

Надеюсь ты понимаешь, что API не является частью Qt.

API - это часть ОС. и она меняется от 1 до другой.

В Qt можно сделать программу, но менять параметры системы можно ТОЛЬКО нативным API.

В общем ты путаешь Qt  и API. Больше так не делай :)

Ручками делай через API. стандартные классы Qt работают и предназначены для мультиплатформенных приложений.


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Akon от Ноябрь 25, 2011, 15:02
За все проведенное время на форуме, пожалуй, это первый негативный ответ в мой адрес >:(

Ну да ладно, попробую объяснить. Когда говорят о компонентах, то в первую очередь интересует их интерфейс, а не реализация. "Qt компонент" это не значит, что он реализован исключительно средствами Qt, а значит, что он имеет интерфейс Qt (C++ + фишки Qt). Компонент инкапсулирует платформенно зависимый код под единый интерфейс.


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Bepec от Ноябрь 25, 2011, 15:12
Ну извини, если толерантное слово печалька тебя огорчило :)

добавлю - Qt компонент значит именно Qt.

В твоем случае нужен компонент с интерфейсом Qt, полностью самописный :)  Яснее надо выражаться товарисч!

Нет, в библиотеке Qt ты такого не найдешь.

Скажем так - ты неверно выбрал раздел для создания темы, есть раздел "Дополнительные компоненты", который отвечает твоим требованиям.

Но сомневаюсь, что такой будет :) Во всяком случае я еще не видел программ, которые использовали такое API, а значит это непросто :-D

Заставляет задуматься - мб ты что то неправильно представляешь, или тебе нужно что-то другое?

PS за негатив благодари свое субъективное мнение, четкое, полное, показывающее мою правоту, но на тот момент не осознанное тобой   :o
Цитировать
Ответ неверный  (хоть полный и четкий).
Панели рабочего стола реализуются через АПИ оболочки, например, по винду это COM-интерфейсы. В базовом QWidget нет такого кода. Флаг "поверх всех окон" это не то, например, он не изменит геометрию рабочего стола с учетом данного виджета, см. QDesktopWidget::availableGeometry(), QDesktopWidget::screenGeometry().


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Пантер от Ноябрь 25, 2011, 15:27
Пиплы, давайте без ссор. Ну, или в личке поругайтесь. ;)


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Bepec от Ноябрь 25, 2011, 15:34
оффтоп: ссор не было, все счастливы, гуляют по траффке :)

По теме: ТС ты распиши свой сабж.

К примеру:

Цитировать
Кто знает, есть ли Qt компонент, реализующий аналог панели задач Windows?
Необходимые ф-ции:
     - прилипание к краям экранов,
     - уменьшение рабочего стола на свою величину
     - возможность размещения ярлыков

Перечисли что тебе надо точно :)

Мб я и сделаю на досуге ^^


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: lit-uriy от Ноябрь 25, 2011, 21:18
>>добавлю - Qt компонент значит именно Qt.
НЕТ. ТС прав - "он имеет интерфейс Qt", примеры на qt-apps.org.

2 Akon
Мне не приходилось встречать требуемый тебе компонент, так что бери API конкретной системы и пиши.


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Racheengel от Декабрь 01, 2011, 15:14
Насколько я понимаю, автор ищет нечно с Qt API, которое бы позволило управлять виндовым десктопом (ярлычки там двигать, волпейперы менять и т.д.). В этом случае, ни COM, ни системный API интерфейс как раз не при чем, т.к. нужен фактически враппер с функциями типа myDesktop->setWallpaper(blablabla).

ЗЫ. Не путайте Qt компоненты и COM.


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Bepec от Декабрь 02, 2011, 06:59
Насколько я понимаю, автор ищет нечно с Qt API, которое бы позволило управлять виндовым десктопом (ярлычки там двигать, волпейперы менять и т.д.). В этом случае, ни COM, ни системный API интерфейс как раз не при чем, т.к. нужен фактически враппер с функциями типа myDesktop->setWallpaper(blablabla).

ЗЫ. Не путайте Qt компоненты и COM.

Вы немного неправильно поняли, ему панель задач нужна. Тулбар с оповещением системы о своем месторасположении и изменении доступных размеров рабочего стола :)


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Racheengel от Декабрь 02, 2011, 11:13
а, действительно :) что-то недоглядел... но тогда можно и правда тулбаром сделать, с флагом "поверх всех". Правда, оно еще как-то должно системе сообщать, сколько места для десктопа выделить, в этом может быть трабла...


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Bepec от Декабрь 02, 2011, 12:28
В том и закавыка, что ТС забыл о теме и своих конкретных требований не указал :)

А так бы под WinApi давно сделал бы :)


Название: Re: Панель рабочего стола (desktop panel)
Отправлено: Akon от Декабрь 02, 2011, 20:01
desktop panel - имхо, термин понятный, поэтому и указал его в названии темы. Когда-то делал такую панель под вин, делается через ShellApi::SHAppBarMessage().

Если нужны какие-то конкретные функциональные требования, то смотреть доку на упомянутую функцию.