Qt cpp 如果 m_pDispWidget 窗口被其他任何窗口遮盖,则m_pARAugmentedRealityOneSenceCover隐藏
时间: 2023-11-28 09:51:27 浏览: 36
你可以通过以下代码检测m_pDispWidget窗口是否被遮盖,并且根据需要隐藏m_pARAugmentedRealityOneSenceCover窗口:
```cpp
// 获取m_pDispWidget相对于屏幕的位置和大小
QRect dispWidgetRect = m_pDispWidget->geometry().translated(m_pDispWidget->mapToGlobal(QPoint(0, 0)));
// 获取所有顶层窗口
QList<QWidget*> topLevelWidgets = QApplication::topLevelWidgets();
// 遍历所有顶层窗口
foreach (QWidget* widget, topLevelWidgets)
{
// 如果m_pDispWidget被其他窗口遮盖,则隐藏m_pARAugmentedRealityOneSenceCover窗口
if (widget != m_pDispWidget && widget->isVisible() && dispWidgetRect.intersects(widget->geometry().translated(widget->mapToGlobal(QPoint(0, 0)))))
{
m_pARAugmentedRealityOneSenceCover->hide();
break;
}
else
{
m_pARAugmentedRealityOneSenceCover->show();
}
}
```
这段代码首先获取m_pDispWidget相对于屏幕的位置和大小,然后遍历所有顶层窗口,如果m_pDispWidget被其他窗口遮盖,则隐藏m_pARAugmentedRealityOneSenceCover窗口。如果m_pDispWidget未被遮盖,则显示m_pARAugmentedRealityOneSenceCover窗口。