我正在使用 Qt,我想做的是在 Windows 系统托盘中的图标上显示自定义弹出窗口。我可以通过使用geometry() 和任务栏高度通过查找screenGeometry() 和availableGeometry() 之间的差异来获取图标坐标。因此,弹出窗口可以正确对齐,并且不会与不同任务栏方向的任务栏重叠(例如,当任务栏位于左侧或屏幕顶部时)。
当任务栏的自动隐藏打开时,问题就开始了,然后显然 availableGeometry 返回与 screenGeometry 相同的值,我再也找不到任务栏的高度了。这会导致弹出窗口与任务栏重叠,甚至显示在错误的位置。
我的问题是:启用自动隐藏后,如何正确检测 Windows 中任务栏的方向和大小?我应该使用一些 winapi 功能,还是可以纯粹在 Qt 中使用(首选)?