QT FramelessWindowHint Windows 7停靠在一边

时间:2012-12-17 22:43:47

标签: qt windows-7 screen qwidget dock

我用“Qt :: FramelessWindowHint | Qt :: WindowMinimizeButtonHint | Qt :: WindowSystemMenuHint”windowFlags制作了一个QWidget。

我重新实现了所有鼠标事件,以便能够移动/调整窗口大小。

我想做的最后一件事是能够获得与Windows 7 Dock系统的“普通窗口”相同的行为。

当我将窗口移动到屏幕左侧/右侧/顶部附近时,使用普通窗口,将其大小调整为halfWindowSize或全屏。

知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

那太明显但仍然......

您需要收听move事件,当您检测到top-left <= 0top-right >= SCREEN_WIDTH时,您将手动调整窗口大小。当然,你需要在所有这些之前获得屏幕尺寸并计算其中的一半,依此类推。

无需提及,在半最大化状态下,您需要倾听并检查窗口是否已移动以恢复其先前的尺寸。

我真的相信除非你要使用winapi,否则没有琐碎的方法来实现这一点。那么在winapi案例中,人们可以反对琐事,我不能否认。

如果您最终想出一个更简单的解决方案,请告诉我们。