Qt OSX全屏窗口上部menuBar和Dock

Posted

技术标签:

【中文标题】Qt OSX全屏窗口上部menuBar和Dock【英文标题】:Qt OSX fullscreen window upper menuBar and Dock 【发布时间】:2016-04-15 22:44:29 【问题描述】:

Qt5.6,OS X El Capitan。我有一个问题,我需要在屏幕上选择一个区域来截屏,但菜单栏和 Dock 总是在我的窗口上。

我的代码:

QScreen *screen = QGuiApplication::primaryScreen();
QRect desktop = screen->virtualGeometry();

region = new SelectRegion;

region->setGeometry(desktop);
region->show();
region->focusWidget();
region->activateWindow();
region->raise();

区域窗口有标志:Qt::Window、Qt::FramelessWindowHint、Qt::WindowStaysOnTopHint。

如何将我的窗口移到顶部?

【问题讨论】:

【参考方案1】:
Qt::WindowFlags windowFlags =
        Qt::WindowStaysOnTopHint |
        Qt::BypassWindowManagerHint |
        Qt::FramelessWindowHint |
        Qt::NoDropShadowWindowHint |
        Qt::ToolTip;

setWindowFlags(windowFlags);

应该这样做......

【讨论】:

【参考方案2】:

标志 Qt::Popup 以及将其大小设置为屏幕大小应该可以解决问题,但请注意,它可能会破坏键盘焦点。

【讨论】:

以上是关于Qt OSX全屏窗口上部menuBar和Dock的主要内容,如果未能解决你的问题,请参考以下文章

解决Mac下窗口无法最大化的问题 - 只有最小化和全屏怎么够

解决Mac下窗口无法最大化的问题 - 只有最小化和全屏怎么够

Swift OSX 全屏隐藏状态和停靠

Qt 解决程序全屏运行弹窗引发任务栏显示

如何在 Qt QML 中处理 mac 集成 About MenuBar 项?

带有 OpenGL 上下文的基于 Qt 的命令行工具