Qt - 即使QMainWindow太小也允许对接

时间:2012-07-17 09:05:51

标签: c++ qt qmainwindow qdockwidget

我之前的问题没有答案,所以让我重新说一下:

是否可以对QMainWindow进行QDockWidget接受停靠,无论窗口小部件和窗口的大小如何?

目前,如果窗口太小而无法容纳QDockWidget的最小尺寸,则它将无法停靠。如果主窗口会增长以适应小部件,那将是理想的。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我上次对你的问题有了一些看法,但我认为我的解决方案并不理想。所以如果你还在苦苦挣扎,我会尽力回答。

实际上,鼠标输入事件和调整主窗口大小没有任何问题。问题是,当您从主窗口外部拖动QDockWidget时,后者会失去焦点而无法处理该事件。

我的想法是为您的QDockWidget安装一个事件过滤器。在其实现中,您应该跟踪QDockWidget移动和全局光标位置(QCursor::pos())。如果光标当前位于主窗口内并且QDockWidget正在移动,则意味着您已将QDockWidget拖动到主窗口上,如果其大小小于某个最小大小,则应调整大小。< / p>