调整主窗口大小:我如何知道哪一侧用于调整大小?

时间:2011-08-31 19:15:19

标签: qt

当我调整窗口大小时,我可以使用顶部,底部,左侧或右侧或右上角,左上角,右下角或左下角进行调整。

当我调整大小时,有没有办法知道哪一个被使用?

1 个答案:

答案 0 :(得分:0)

我不知道是否有一个优雅的解决方案,因为不同的操作系统处理不同的边界。

我的建议是

  • 计算每次绘制当前窗口大小和当前窗口大小之间的差异
  • 获取鼠标cursor's position
  • 如果窗口X发生变化,则使用的边框可能是左边或右边 - 无论鼠标光标最近。如果Y发生变化,可能是光标最靠近的顶部或底部边框。
  • 如果两者都发生变化,则鼠标光标最接近的角落可能是它。

可能会出现一些极端情况。例如,可以使用键盘在某些系统上调整窗口大小。它也可能以编程方式调整大小,例如当用户更改为太低而无法包含窗口的分辨率时。在大多数情况下,通过在调整大小时检测到鼠标按钮,可以处理这些事情。

此外,可以从角落调整宽度或高度。在这些情况下,您可能必须从角落选择一个阈值,以确定它是否实际位于角落。

Window Geometry picture from Nokia

相关问题