我正在为使用 Qt 和 QML for Ubuntu Linux 的应用程序构建 UI。我有一个带有画布元素的查看器窗口,默认情况下应该是全屏的。打开应用程序时,它工作正常(即隐藏 Ubuntu 侧边栏和顶部任务栏)。但是,一旦我最小化我的应用程序,然后使用 再次最大化它viewer->setFullScreen();
,Ubuntu 侧边栏和顶部任务栏仍然可见,并且由于相同的原因在画布上书写时存在偏移。任何帮助,将不胜感激。
问问题
1041 次
1 回答
2
根据askubuntu 上的这个主题,您的问题确实看起来像 Unity 错误(或功能)。但是,根据Launchpad上的某种相关错误,您似乎可以通过以下方式获得所需的行为:
通过右键单击窗口的标题栏打开“始终在顶部”,然后使其全屏显示。当使用另一个屏幕时,这将阻止 Unity 面板在此全屏窗口顶部呈现。
在 Qt 中,您可以Qt::WindowStaysOnTopHint
通过QWidget::windowFlags
.
额外注意官方文档中的注释:
- 此函数在更改窗口的标志时调用
setParent()
,导致窗口小部件被隐藏。您必须调用show()
以使小部件再次可见。 - 关于
Qt::WindowStaysOnTopHint
——通知窗口系统该窗口应位于所有其他窗口的顶部。请注意,在 X11 上的某些窗口管理器上,您还必须传递Qt::X11BypassWindowManagerHint
此标志才能正常工作。
希望这可以帮助。
于 2016-01-19T08:01:29.043 回答