При перемещении виджета с помощью мыши виджет свободно перемещается (виджет с фреймом). То, что я хочу достичь, состоит в том, чтобы иметь определенные области, где перемещенный виджет является привязкой, например, к другому виджету или границе экрана. Например, окно списка воспроизведения в Winamp привязывается к главному окну. Как добиться такого поведения?Как привязать геометрию QWidget при перемещении с помощью мыши?
6
A
ответ
0
Если ваш виджет является лишь небольшой частью приложения, я бы предложил то же самое, что и первый комментарий. Вы должны использовать
QMainWindow
, а затем добавить
QDockWidget
в главном окне.
// ...
QMainWindow* window = new QMainWindow();
// ...
QDockWidget* dockWidget = new QDockWidget("Your DockWidget");
window->addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
// ...
Но если это не соответствует вашим потребностям, то для этого вам необходимо реализовать свой собственный алгоритм.
Это называется стыковка – deW1
@ deW1 это называется привязкой. –
Вам необходимо обработать события перемещения окна и вручную отрегулировать геометрию (с вашим собственным алгоритмом). Нет официальных методов, как это сделать. –