Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: niXman от Август 14, 2008, 21:42



Название: Эффект прилипания.
Отправлено: niXman от Август 14, 2008, 21:42
Подскажите плиз.
Как реализовать эффект прилипания окна к краям рабочего стола, и к краям окон этого же приложения.

Спасибо.


Название: Re: Эффект прилипания.
Отправлено: ритт от Август 14, 2008, 23:01
если не ошибаюсь, видел реализацию в psi


Название: Re: Эффект прилипания.
Отправлено: niXman от Август 15, 2008, 00:04
если не ошибаюсь, видел реализацию в psi
Собрал psi интереса ради. Но нет, там все как обычно, никакого прилипания.


Название: Re: Эффект прилипания.
Отправлено: ритт от Август 15, 2008, 00:57
ну, может быть в qutIM или в Kadu
где-то точно видел :)

ну, по сути всё должно быть просто - отлавливаем событие изменение геометрии нужного окна, читаем геометрию экрана, если окно отстоит на <= n && > 0 пикселей от соответствующей границы, форсируем смещение к нулю...примерно так


Название: Re: Эффект прилипания.
Отправлено: niXman от Август 15, 2008, 01:28
В qutIM точно нет, так  как его и юзаю.


Название: Re: Эффект прилипания.
Отправлено: niXman от Август 15, 2008, 01:39
ну, может быть в qutIM или в Kadu
где-то точно видел :)

ну, по сути всё должно быть просто - отлавливаем событие изменение геометрии нужного окна, читаем геометрию экрана, если окно отстоит на <= n && > 0 пикселей от соответствующей границы, форсируем смещение к нулю...примерно так
Теоритически так. Но на практике немного иначе. Например:
http://vingrad.ru/blogs/sabrog/2007/12/29/pishem-kod-prilipaniya-okna-kak-u-winamp-dlya-qt-4/


Название: Re: Эффект прилипания.
Отправлено: ритт от Август 15, 2008, 01:54
а что не устраивает в приведённом примере?
пусть бы окно прилипало на отпускание...думаю, можно чуть извратиться - победить и это


Название: Re: Эффект прилипания.
Отправлено: niXman от Август 15, 2008, 02:03
а что не устраивает в приведённом примере?
пусть бы окно прилипало на отпускание...думаю, можно чуть извратиться - победить и это
Вот если нечего подходящегоне найду, придется доделывать этот код.