我用“Qt :: FramelessWindowHint | Qt :: WindowMinimizeButtonHint | Qt :: WindowSystemMenuHint”windowFlags制作了一个QWidget。
我重新实现了所有鼠标事件,以便能够移动/调整窗口大小。
我想做的最后一件事是能够获得与Windows 7 Dock系统的“普通窗口”相同的行为。
当我将窗口移动到屏幕左侧/右侧/顶部附近时,使用普通窗口,将其大小调整为halfWindowSize或全屏。
知道怎么做吗?
答案 0 :(得分:0)
那太明显但仍然......
您需要收听move
事件,当您检测到top-left <= 0
或top-right >= SCREEN_WIDTH
时,您将手动调整窗口大小。当然,你需要在所有这些之前获得屏幕尺寸并计算其中的一半,依此类推。
无需提及,在半最大化状态下,您需要倾听并检查窗口是否已移动以恢复其先前的尺寸。
我真的相信除非你要使用winapi
,否则没有琐碎的方法来实现这一点。那么在winapi
案例中,人们可以反对琐事,我不能否认。
如果您最终想出一个更简单的解决方案,请告诉我们。