2015-04-03 4 views
6

При перемещении виджета с помощью мыши виджет свободно перемещается (виджет с фреймом). То, что я хочу достичь, состоит в том, чтобы иметь определенные области, где перемещенный виджет является привязкой, например, к другому виджету или границе экрана. Например, окно списка воспроизведения в Winamp привязывается к главному окну. Как добиться такого поведения?Как привязать геометрию QWidget при перемещении с помощью мыши?

+0

Это называется стыковка – deW1

+1

@ deW1 это называется привязкой. –

+0

Вам необходимо обработать события перемещения окна и вручную отрегулировать геометрию (с вашим собственным алгоритмом). Нет официальных методов, как это сделать. –

ответ

0

Если ваш виджет является лишь небольшой частью приложения, я бы предложил то же самое, что и первый комментарий. Вы должны использовать

QMainWindow 

, а затем добавить

QDockWidget 

в главном окне.

// ... 

QMainWindow* window = new QMainWindow(); 

// ... 

QDockWidget* dockWidget = new QDockWidget("Your DockWidget"); 
window->addDockWidget(Qt::LeftDockWidgetArea, dockWidget); 

// ... 

Но если это не соответствует вашим потребностям, то для этого вам необходимо реализовать свой собственный алгоритм.