2012-07-17 51 views
0

我以前的問題是沒有答案,所以讓我重組你的問題:的Qt - 允許停靠即使QMainWindow的太小

是否有可能使一個QMainWindow接受QDockWidget的對接,無論小部件和窗口的大小?

目前,如果窗口太小而不能適應QDockWidget的最小尺寸,它將不會對接。如果主窗口適合小部件,這將是理想的。

在此先感謝!

回答

0

我上次對你的問題有一些想法,但我認爲我的解決方案並不理想。所以如果你還在掙扎,我會盡力回答。

其實沒有任何問題讓鼠標進入事件和調整您的主窗口。問題是,當您從主窗口的外部拖動QDockWidget時,後者失去焦點並且無法處理該事件。

我的想法是在您的QDockWidget上安裝事件過濾器。在其實施中,您應跟蹤QDockWidget移動和全局光標位置(QCursor::pos())。如果光標當前位於主窗口中並且QDockWidget正在移動,則表示您已將QDockWidget拖動到主窗口上,並且如果其大小小於某個最小尺寸,則應調整其大小。

+0

有人會認爲Qt應該有這個功能。畢竟它看起來像是一個邏輯特徵。特別是當你以編程方式向窗口添加小部件(如'addDockWidget(Qt :: LeftDockWidgetArea,widget)')時,窗口大小會調整。儘管如此,你的回答給了我一個方向。再次感謝。 – monoik 2012-07-18 06:58:38