我需要知道我的应用程序是否处于全屏模式。 全屏模式由以下代码激活:
myWidgetPtr->setWindowFlags(Qt::Window);
myWidgetPtr->setWindowState(Qt::WindowFullScreen);
myWidgetPtr->show();
myWidgetPtr->activateWindow();
全屏模式本身运行正常。 然后我尝试使用以下代码检测它:
if (QApplication::activeWindow() && QApplication::activeWindow()->isFullScreen())
{
// handle fullscreen mode here
}
此解决方案在Linux上完成,但在Mac OS X(10.10.5)上,QApplication::activeWindow()
始终返回0.因此,我无法检测到全屏模式。
此外,我还尝试使用Objective-C代码进行此项检查:
bool isAppInFullscreen()
{
NSWindow *activeWindow = [[NSApplication sharedApplication] keyWindow];
return (activeWindow.styleMask & NSFullScreenWindowMask);
}
但不幸的是,它也无效。 我使用的是Qt 4.8.7。