2015-04-03 75 views
6

使用鼠標拖動小部件時,寬度可以自由移動(小部件與框架)。我想要實現的是將移動的小部件的某些區域捕捉到其他小部件或屏幕的邊框。例如Winamp中的播放列表窗口捕捉到主窗口。如何實現這樣的行爲?如何在使用鼠標移動時捕捉QWidget幾何體?

+0

這叫做對接 – deW1 2015-04-03 12:52:58

+1

@ deW1它叫做對齊。 – 2015-04-03 13:08:37

+0

您需要處理窗口移動事件並手動調整幾何圖形(使用您自己的algorythm)。沒有官方的方法,如何去做。 – 2015-04-03 13:09:42

回答

0

如果你的小部件只是你應用程序的一小部分,那麼我會提供與第一個註釋相同的東西。您應該使用

QMainWindow 

,然後添加一些

QDockWidget 

到主窗口。

// ... 

QMainWindow* window = new QMainWindow(); 

// ... 

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

// ... 

但是,如果它不適合您的需要,那麼你需要實現你自己的算法爲此目的。