如何在使用鼠标移动时捕捉QWidget几何体?

Uga*_*uga 6 c++ qt qwidget qtgui qt5

使用鼠标拖动窗口小部件时,可以自由移动窗口(带框架的窗口小部件).我想要实现的是将移动的小部件移动到某些区域,例如移动到屏幕的其他小部件或边框.例如,Winamp中的播放列表窗口会捕捉到主窗口.如何实现这样的行为?

p.i*_*.g. 0

如果您的小部件只是您应用程序的一小部分,那么我会提供与第一条评论相同的内容。您应使用

QMainWindow
Run Code Online (Sandbox Code Playgroud)

然后添加一些

QDockWidget
Run Code Online (Sandbox Code Playgroud)

到主窗口。

// ...

QMainWindow* window = new QMainWindow();

// ...

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

// ...
Run Code Online (Sandbox Code Playgroud)

But if it does not fit your needs then you need implement your own algorithm for this purpose.