相关疑难解决方法(0)

Qt在屏幕上正确放置新窗口,鼠标中心,移动到屏幕

经过几个月的尝试,搜索,查看代码等,我无法找到在QT中正确定位新窗口的解决方案.在我最基本的情况下,我只想获得窗口的最终大小并将其置于鼠标下方.它将被移动以确保窗口的任何部分都不在屏幕之外.我不希望窗口出现然后移动到位,这会产生视觉震动,特别是桌面FX打开时.

我遇到的问题,并非所有问题都有适当的解决方案:

  1. 在之前显示窗口之前,并不总是填充frameGeometry.

  2. frameGeometry有时是完全错误的,特别是在Windows 7上.

  3. 在显示之前,无法知道是应用sizeHint还是大小,或者介于两者之间.也就是说,尺寸政策似乎不可预测.

请注意,我知道如何保存/恢复以前创建的窗口的几何体.尽管QT缺陷在这里我也有一个可行的解决方案.

另请注意,我无法使用窗口管理器默认放置.对于多显示器设置中的非MDI应用程序,它们的位置非常糟糕(通常甚至与鼠标不在同一台显示器上).

我还想避免对所有小部件和对话框进行子类化以实现解决方案,因为它不是通用的.如果这是唯一可能的方式,那么我愿意考虑它(如果事件过滤器也不是一个选项).

有没有人有可行的解决方案?

c++ windows qt kde gnome

5
推荐指数
1
解决办法
8903
查看次数

标签 统计

c++ ×1

gnome ×1

kde ×1

qt ×1

windows ×1