我使用QWindow来包含一些经过高度优化的OpenGL代码。
为了方便用户交互,我提供了一种模式,在该模式中,光标下的数据显示在工具提示中。
当另一个窗口遮挡了发送工具提示事件的窗口时,这会导致UX问题。在下面的屏幕截图中,工具提示被绘制在Firefox窗口的顶部(这是不需要的)。
范例解决方案是什么?有没有办法测试窗口的一部分是否被遮挡了?

调用工具提示的函数如下所示:
if (!qIsNaN(value_under_cursor))
{
auto state = QApplication::applicationState();
auto text = QString::number(value_under_cursor, 'f', 3);
static QString old_value;
if (text != old_value)
{
auto static last_show = timestamp();
auto now = timestamp();
auto re_raster = ((now - last_show) >= ms_to_chrono(100));
if (re_raster)
{
QToolTip::showText(current_mouse_coordinates_in_global, text);
last_show = now;
}
}
old_value = text;
}发布于 2017-02-13 16:03:06
我不知道是否有一种跨平台的方法来测试特定的区域是否被另一个应用程序窗口遮挡了,但你可以:
QWindow::isActive()、IIRC),如果是,则仅显示工具提示,或者使用OpenGL显示https://stackoverflow.com/questions/42198894
复制相似问题