在Mac OS X上的Qt中检测全屏模式

时间:2016-01-26 16:02:37

标签: macos qt fullscreen

我需要知道我的应用程序是否处于全屏模式。 全屏模式由以下代码激活:

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。

0 个答案:

没有答案