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

Macos 在Mac OS X上检测Qt的全屏模式,macos,qt,fullscreen,Macos,Qt,Fullscreen,我需要知道我的应用程序是否处于全屏模式。 全屏模式由以下代码激活: myWidgetPtr->setWindowFlags(Qt::Window); myWidgetPtr->setWindowState(Qt::WindowFullScreen); myWidgetPtr->show(); myWidgetPtr->activateWindow(); if (QApplication::activeWindow() && QApplication::a

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

myWidgetPtr->setWindowFlags(Qt::Window);
myWidgetPtr->setWindowState(Qt::WindowFullScreen);
myWidgetPtr->show();
myWidgetPtr->activateWindow();
if (QApplication::activeWindow() && QApplication::activeWindow()->isFullScreen())
{
// handle fullscreen mode here
}
全屏模式本身工作正常。 然后我尝试使用以下代码检测它:

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。

当我使用布尔值存储我的状态时,因为我不信任Qt…是否尝试升级到Qt 5?截至2016年,Qt 4不受支持。当我使用布尔值存储我的状态时,因为我不信任Qt…是否尝试升级到Qt 5?截至2016年,Qt 4不受支持。