Название: Окна, прилипающие друг к другу Отправлено: Natalie от Марта 24, 2006, 15:45 Есть два виджета (два окошка). Необходимо, чтобы они друг к другу прилипали, если подносить их близко друг к другу.
Мне говорили это можно сделать с помощью QDockWidget. Но как это именно сделать? Ведь при этом главного окна не должно быть видно. Но если главно окно сделать невидимым, то и все дочерние не будут видны. Может кто-то такое делал... Подскажите, пожалуйста. Название: Re: Окна, прилипающие друг к другу Отправлено: Shama от Марта 24, 2006, 18:07 Цитата: "Natalie" Ведь при этом главного окна не должно быть видно. Но если главно окно сделать невидимым, то и все дочерние не будут видны. Ну да, на то они и дочерние... вам надо сделать Dock окон или Виджетов всё-таки? Название: Окна, прилипающие друг к другу Отправлено: Natalie от Марта 25, 2006, 13:38 Мне просто необходимо сделать так, чтобы два окна прилипали друг к другу.
Мне кажется, что QDockWidget для этой цели не подходит, но один человек мне сказал, что с помощью QDockWidget это сделать можно. Если QDockWidget не позволяет сделать такое, то как вообще это можно реализовать? Может кто-то такое делал? Название: Окна, прилипающие друг к другу Отправлено: Dendy от Марта 28, 2006, 09:57 QDockWidget здесь не помошник. Он завязан на QMainWindow и специальньІх областях прилипания. А тебе, я так понимаю, нужно что-то типа Winamp'а.
Я такое делал, только сразу предупреждение: За стандартньІй заголовок окошка лучше не тягать, ибо попьІтка изменить положение/размер окна по собьІтию SizeEvent/MoveEvent чревата бесконечной рекурсией. Лучше тягать за специальньІе участки или вообще убирать заголовок (как ето сделано в том же винампе). Вот пример как я делал: Код: void Minimap::mousePressEvent( QMouseEvent * e ) В canDock() проверяем куда можно прилипнуть в зависимости от неких областей прилипания, дистанции прилипания и прочего. Если можем, то липнем (двигаемся в ту точку), иначе - обьІчное движение окошка. |